2016-11-04 4 views
2

Ich habe Java selbst unterrichtet und bin auf einen verwirrenden Teil über Methodentypen/Rückgabetypen gestoßen?Methodentypen nicht verstehen

Zum Beispiel, was bedeutet die <U> direkt nach der public in der Methode unten? Wie kann es eine Art von <U> und List<U> zurückgeben?

public <U> IList<U> map(IFunc<T, U> f) { 
    return new ConsList<U>(f.apply(this.first), this.rest.map(f)); 
} 
+0

'U' ist ein generischer Typ. Sie sollten den Oracle-Weg hierüber gelesen haben, es ist sehr informativ: https://docs.oracle.com/javase/tutorial/java/generics/ –

Antwort

1

Es wird als Typ Paremeter genannt. Es stellt eine generische Klasse dar, die innerhalb dieser map Methode darstellt. Was ich mit generischer Klasse meinte, ist jede Klasse, die man sich vorstellen kann. Es kann MyHouse.java, MyCar.java, String.java, etc

IList<U> ist sein, es ist ein IList ist die U Typ-Objekte enthält.

+0

Also lassen Sie uns sagen, wenn ich '' in '' geändert habe Kartenmethode würde eine Liste von Büchern zurückgeben? – CtrlAltDelete

+0

@CtrlAltDelete ja genau – triggerNZ