public class Sample<T>{
T data;
Sample(){
data = ????;
}
}
Wie kann ich den Daten einen Standardwert zuweisen?Generics Standardkonstruktor Java
public class Sample<T>{
T data;
Sample(){
data = ????;
}
}
Wie kann ich den Daten einen Standardwert zuweisen?Generics Standardkonstruktor Java
Sie können nicht. Der Typ T
is erased zur Laufzeit, so dass Sie es nicht instanziieren können.
Wenn Sie ein Class
Argument an die Sample(..)
Konstruktor übergeben, können Sie rufen clazz.newInstance()
* "Sie können es nicht." * ... es sei denn, der Standardwert ist 'null'. :-) –
Ja, das ist das Offensichtliche :) – Bozho
Bozho richtig ist (man kann nicht). Wenn Sie möchten, dass es mit einem Wert beginnt, stellen Sie diesen Wert als Argument für den Konstruktor ein. Zum Beispiel:
public class Sample<T> {
T data;
Sample(T data) {
this.data = data;
}
}
Duplizieren von: http://stackoverflow.com/questions/182636/how-to-determine-the-class-of-a-generic-type – Nicolas