两种方法判断一个对象是否为基本类型的包装对象
1.利用java反射
package com.magima.luan;
public class RefMain {
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException{
Integer a=new Integer(1);
Double b=new Double(2.34);
Character d=new Character('e');
System.out.println(match(a.getClass()));
System.out.println(match(b.getClass()));
System.out.println(match(d.getClass()));
System.out.println(match(int.class));
}
public static boolean match(Class<?> claz){
try {
return ((Class<?>) claz.getField("TYPE").get(null)).isPrimitive();
} catch (IllegalArgumentException | IllegalAccessException
| NoSuchFieldException | SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
}
2.利用instanceof关键字
package com.magima.luan;
public class RefMain {
public static void main(String[] args) throws IllegalArgumentException,
IllegalAccessException {
Integer a = new Integer(1);
Double b = new Double(2.34);
Character d = new Character('e');
System.out.println(match(a));
System.out.println(match(b));
System.out.println(match(d));
}
public static boolean match(Object object) {
if (object instanceof Byte || object instanceof Character
|| object instanceof Boolean || object instanceof Short
|| object instanceof Integer || object instanceof Long
|| object instanceof Float || object instanceof Double) {
return true;
}
return false;
}
}