Java 中的原始 类

Primitive classes in Java

int.classdouble.class

这样的类有什么用

例如你不能做类似

的事情
    Object val=getValue();
    if(val instanceof int){

    }

int i = new int();

是的,我知道这是不可能的,因为 int 不是 Object 类型。但是,有什么必要要那些原始的类呢?我在 Oracle documentation.

中没有看到任何对此的明确解释

它对反思很有用。

例如,如果您想使用 Class.getDeclaredMethod 来查找以 int 作为参数的方法,您可以这样做:

//Find the method foo(int)
Method theMethod = theClass.getDeclaredMethod("foo", int.class);

在Java中,X.classclass文字的语法。当 X 是 class 或接口的名称时,表达式 X.class 计算为表示 class 或接口的 Class 对象type(引用类型)。

因为还有 Class 原始类型的对象(如 Nicholas 所述用于反射),为了保持一致性,他们扩展了语法 所以对于原始类型 X,表达式 X.class 的计算结果也为表示该原始类型的 Class 对象。

#注意:对于所有原始类型,该值也可作为相应包装器class的静态字段TYPE。所以 int.class 等同于 Integer.TYPE.