前几天我注意到我可以调用boolean.class,但不能调用integer.class(或其他基元).是什么让布尔如此特别?
注意:我说的是boolean.class,而不是Boolean.class(这很有意义).
Duh:我尝试过integer.class,而不是int.class.我不觉得愚蠢:
不integer.class但是int.class.是的你可以.JRE 6:
public class TestTypeDotClass{
public static void main(String[] args) {
System.out.println(boolean.class.getCanonicalName());
System.out.println(int.class.getCanonicalName());
System.out.println(float.class.getCanonicalName());
System.out.println(Boolean.class.getCanonicalName());
}
}
Run Code Online (Sandbox Code Playgroud)
输出
boolean
int
float
java.lang.Boolean
Run Code Online (Sandbox Code Playgroud)
你可以做到int.class.它给出了相同的Integer.TYPE.
int.class.isPrimitive(),boolean.class.isPrimitive(),void.class.isPrimitive(),等,都会给的值true.Integer.class.isPrimitive(),Boolean.class.isPrimitive()等等,将给出一个值false.