Methodendeklaration verstehen

B

benjamin222

Mitglied
public static List asList(T... a) { return new ArrayList<>(a); }:
public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
    }

Bin auf diesen Code Schnipsel in der Klasse Arrays gestoßen. Und ich verstehe gleich zwei Sachen nicht.

1. Warum da zwei Rückgabetypen stehen und
2. was diese Punktschreibweise bei den Eingangsparametern zu bedeuten hat.
 
mihe7

mihe7

Top Contributor
Würde man die Angabe <T> nach dem static weglassen, müsste T ein existierender Typ sein, also z. B. eine Klasse T existieren. Mit der Angabe drückt man aus, dass dem nicht so ist, sondern T ein Typparameter ist, also für einen beliebigen Typ steht.

Der Compiler kann aus dem Methodenaufruf den Typ ableiten: wird asList mit String-Objekten aufgerufen, dann steht T eben für String und der Rückgabewert ist vom Typ List<String>. Wird asList dagegen mit Person-Objekten aufgerufen, dann steht T für Person und der Rückgabewert ist vom Typ List<Person>.

Die Ellipse (...) bedeutet, dass eine beliebige Zahl von Argumenten des Typs T übergeben werden können. Der Parameter a ist in der Methode dann ein Array vom Typ T, das alle Argumente enthält.
 
kneitzel

kneitzel

Top Contributor
Um das evtl. noch Nachlesen zu können:
Das Erste ist der Punkt Generics und es handelt sich um eine generische Methode.

Das Zweite wird als varargs bezeichnet. Eine Variable Anzahl Argumente.

Mit den Begriffen kann man dann auch noch zusätzliche Dokumentation finden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Unterschied Methodendeklaration und Methodensignatur? Java Basics - Anfänger-Themen 2
E Methodendeklaration mit throws wird nich behandelt Java Basics - Anfänger-Themen 3
J Methode verstehen Java Basics - Anfänger-Themen 3
S Allgemeine Java Codes lesen und verstehen Java Basics - Anfänger-Themen 7
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
J Hilfe beim verstehen Java Basics - Anfänger-Themen 3
S Anweisungen verstehen System.out.print/println Java Basics - Anfänger-Themen 2
B Webhooks verstehen - Beispiel? Java Basics - Anfänger-Themen 25
H Variable.methode aufstellen, verstehen Java Basics - Anfänger-Themen 2
B Interpreter-Fehler Code verstehen und Compilerfehler Java Basics - Anfänger-Themen 2
O Programm verstehen :D Java Basics - Anfänger-Themen 4
O Umgang mit Vererbung verstehen Java Basics - Anfänger-Themen 4
B Rekursion verstehen Java Basics - Anfänger-Themen 4
D Erste Schritte Code verstehen - HashSet Java Basics - Anfänger-Themen 8
E Rekursion verstehen. Java Basics - Anfänger-Themen 4
E Rekursion verstehen Java Basics - Anfänger-Themen 2
L Quicksort verstehen Java Basics - Anfänger-Themen 3
J Texte für Java Programmierung besser verstehen? Java Basics - Anfänger-Themen 2
S Programmcode verstehen Java Basics - Anfänger-Themen 4
M Lambda - Ausdrücke verstehen Java Basics - Anfänger-Themen 2
J-Gallus Keylistener verstehen Java Basics - Anfänger-Themen 17
TomatenBrot447 Abhängigkeitsgraph verstehen? Java Basics - Anfänger-Themen 14
O Java und JSF besser verstehen Java Basics - Anfänger-Themen 1
E Erste Schritte brauche hilfe zum verstehen einer Klasse(Tiefensuche) Java Basics - Anfänger-Themen 17
L Polymorphie Polymorphie verstehen? Java Basics - Anfänger-Themen 2
U Code anderer Programmierern verstehen Java Basics - Anfänger-Themen 2
G Quellcode verstehen Java Basics - Anfänger-Themen 9
V Parameter in synchronized-Blöcken verstehen Java Basics - Anfänger-Themen 2
N Initialisierer / statischer Initialisierer verstehen Java Basics - Anfänger-Themen 6
S Wie ist folgender Kommentar in meinem Ant file zu verstehen..? Java Basics - Anfänger-Themen 0
D Quellcode verstehen Java Basics - Anfänger-Themen 4
V Parameterübergabe von Methoden verstehen Java Basics - Anfänger-Themen 13
C Schleifen verstehen Java Basics - Anfänger-Themen 5
G Hausaufgabe mit LinkedList und LinkedListStack verstehen Java Basics - Anfänger-Themen 6
R Programm verstehen, Funktion Java Basics - Anfänger-Themen 4
C Erste Schritte Konstruktoren verstehen Java Basics - Anfänger-Themen 7
T For schleife verstehen Java Basics - Anfänger-Themen 26
W InertionSort verstehen Java Basics - Anfänger-Themen 4
K Passage im Quelltext verstehen Java Basics - Anfänger-Themen 2
S Programmfragmente verstehen? Java Basics - Anfänger-Themen 4
S OOP Java Kommentare, Programm besser verstehen Java Basics - Anfänger-Themen 6
F Typenumwandlung byte <=> int verstehen Java Basics - Anfänger-Themen 3
P hilfe...nix verstehen....... Java Basics - Anfänger-Themen 2
K OPP am besten verstehen !!! Java Basics - Anfänger-Themen 7
M Brauche Hilfe beim Verstehen vom Quellcode Java Basics - Anfänger-Themen 4
M Was kann man unter implementieren so verstehen? Java Basics - Anfänger-Themen 11
S Problem beim Verstehen des Quellcodes Java Basics - Anfänger-Themen 7
B Kann Quellcode von "Hanoi" nicht verstehen. Bitte Java Basics - Anfänger-Themen 4
Z Problem Fehlermeldung zu verstehen Java Basics - Anfänger-Themen 7
A wie lernt man am besten den code zu verstehen? Java Basics - Anfänger-Themen 7
G Möchte Java verstehen Java Basics - Anfänger-Themen 11
K Verzeichniss Struktur verstehen Java Basics - Anfänger-Themen 3
M Java verstehen ! Java Basics - Anfänger-Themen 5
K generics richtig verstehen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen


Oben