public class Sample<T>{
T data;
Sample(){
data = ????;
}
}
Come posso assegnare un valore predefinito ai dati?Generics Default Constructor Java
public class Sample<T>{
T data;
Sample(){
data = ????;
}
}
Come posso assegnare un valore predefinito ai dati?Generics Default Constructor Java
Non è possibile. Il tipo T
is erased in fase di esecuzione, quindi non è possibile istanziarlo.
Se si passa un argomento Class
al costruttore Sample(..)
, è possibile chiamare clazz.newInstance()
* "Non è possibile." * ... a meno che il valore predefinito sia 'null'. :-) –
sì, quello è ovvio :) – Bozho
Bozho è giusto (non è possibile). Se si desidera assolutamente che inizi con un valore, rendere tale valore un argomento per il costruttore. Per esempio:
public class Sample<T> {
T data;
Sample(T data) {
this.data = data;
}
}
duplicati di: http://stackoverflow.com/questions/182636/how-to-determine-the-class-of-a-generic-type – Nicolas