C'è un modo per sapere se una determinata classe è una classe che scatole di un tipo primitivo o devo fare un metodo di brutto come questo:Rileva una classe di pugilato
public boolean isBoxingClass(Class clazz){
String simpleName=clazz.getSimpleName();
switch(simpleName){
case "Integer":
case "Long":
case "Boolean":
case "Double":
case "Float":
return true;
default :
return false;
}
}
EDIT:
Se infine optato per questa soluzione:
public static final List<Class> BOXING_CLASSES= Arrays.asList(new Class[]{
Integer.class,
Long.class,
Short.class,
Boolean.class,
Double.class,
Float.class,
Character.class,
Void.class,
Byte.class});
public static boolean isBoxing(Class clazz){
return BOXING_CLASSES.contains(clazz);
}
E il carattere? –
Ciò restituire 'true' per' my.package.Integer'! È meglio farlo in questo modo 'class == Integer.class || class == Long.class || ... '(o equivalente, un' Set> 'sarebbe utile). –
@Ziyao Wei: Voglio un metodo proprio perché non voglio perdere alcuni casi come questo;) –