public class Sample<T>{
T data;
Sample(){
data = ????;
}
}
Comment attribuer une valeur par défaut aux données?Génériques Constructeur par défaut Java
public class Sample<T>{
T data;
Sample(){
data = ????;
}
}
Comment attribuer une valeur par défaut aux données?Génériques Constructeur par défaut Java
Vous ne pouvez pas. Le type T
is erased lors de l'exécution, vous ne pouvez donc pas l'instancier.
Si vous passez un argument Class
au constructeur Sample(..)
, vous pouvez appeler clazz.newInstance()
* "Vous ne pouvez pas." * ... sauf si la valeur par défaut est 'null'. :-) –
oui, c'est le plus évident :) – Bozho
Bozho est juste (vous ne pouvez pas). Si vous voulez vraiment commencer par une valeur, faites de cette valeur un argument pour le constructeur. Par exemple:
public class Sample<T> {
T data;
Sample(T data) {
this.data = data;
}
}
en double de: http://stackoverflow.com/questions/182636/how-to-determine-the-class-of-a-generic-type – Nicolas