petite surprise sur l'introspection
bonjour
juste une petite note.
j'utilise java.lang.reflect pour inspecter le contenu d'un objet et j'obtiens alors un Object lorsque je lis un champ.
mais là j'ai eu une surprise: si un champ est d'un type primitif mon code qui testait si le champ était Serializable ne marchait pas.
effectivement:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public class TestSerial {
public static void isItSerial(Class clazz) {
if(Serializable.class.isAssignableFrom(clazz)) {
System.out.println(clazz + " Is Serializable");
} else {
System.out.println(clazz + " Is Not serializable");
}
}
public static void main(String[] args) {
isItSerial(Integer.TYPE);
isItSerial(Double.TYPE);
isItSerial(Double.class);
}
} |
donc il faut que je rajoute un test pour savoir si le champ est d'un type primitif.
bon :aie:
question: quelle est la raison de ce comportement? il doit y avoir une bonne raison .... (par exemple: je suis serializable mais je ne suis pas un objet ... bon d'accord)