Est-il un moyen de savoir si un Champ est de type boolean dans la réflexion java le même que isPrimitive()?
Est-il un moyen de savoir si un Champ est de type boolean dans la réflexion java le même que isPrimitive() ?
Field fieldlist[] = clazz.getDeclaredFields();
for (int i = 0; fieldlist.length > i; i++) {
Field fld = fieldlist[i];
if(fld.getClass().isPrimitive()) {
fld.setInt(object, 0);
continue;
}
}
OriginalL'auteur nabil | 2012-01-14
Vous devez vous connecter pour publier un commentaire.
Viens de tester et ça marche pour des primitifs
boolean
variables.OriginalL'auteur Tudor
Je crois
Boolean.class.isAssignableFrom(fld.getClass())
peut être utilisé pour déterminer si le champ est de type boolean. Je n'ai pas eu la chance de tester si cela fonctionne pour les primitives.Thor84no: j'ai eu cette erreur tout en faisant cela: La méthode isAssignableFrom(Classe<?>) dans la Classe de type<Boolean> n'est pas applicable pour les arguments (Boolean)
Dan Robinson: ClassUtils n'a pas aidé non plus: La méthode isAssignable(Classe<?>, Classe<?>) dans le type ClassUtils n'est pas applicable pour les arguments (Classe<Boolean>, Boolean)
Je crois qu'il devrait être un
boolean.class
qui couvre les primitives (à partir de Java 6 en avant je pense). Vous pouvez combiner les deuxBoolean.class.isAssignableFrom(fld.getClass()) || boolean.class.isAssignableFrom(fld.getClass())
. Je n'ai pas une IDE distributeur automatique de billets.OriginalL'auteur Thor84no
Essayez ceci (référence):
OriginalL'auteur dantuch
C'est pour des primitifs et objet:
OriginalL'auteur Rafał Rychlewski