Czy istnieje sposób, aby wiedzieć, czy dana klasa to klasa skrzynie typu pierwotnego czy też muszę zrobić brzydki sposób tak:Detect klasę boks
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:
Jeśli w końcu zdecydowaliśmy się na to rozwiązanie:
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);
}
Co z 'charakterem'? –
To by zwróciło 'true' dla' my.package.Integer'! Lepiej zrobić to w ten sposób: 'class == Integer.class || class == Long.class || ... '(lub odpowiednik,' Set> 'przydałby się). –
@Ziyao Wei: Potrzebuję metody właśnie dlatego, że nie chcę przegapić niektórych takich przypadków;) –