当我查看Class.java的javadoc时,它说:
/*The primitive Java types ({@code boolean},
* {@code byte}, {@code char}, {@code short},
* {@code int}, {@code long}, {@code float}, and
* {@code double}), and the keyword {@code void} are also
* represented as {@code Class} objects.
*/
我一直听说Java中的原始类型不是类/对象,因此Java不是纯粹的面向对象。但上面的JavaDoc让我很困惑。
答案 0 :(得分:0)
不要对“代表”一词感到困惑,搞乱“类型”和“价值”。表示由Java虚拟机创建,它们不是为每个原始值实例化的(这将是autoboxing,尽管某些实例被缓存):
有九个预定义的Class对象来表示八个 原始类型和无效。这些是由Java Virtual创建的 机器,并且与它们的基本类型具有相同的名称 表示,即boolean,byte,char,short,int,long,float和 双
这些对象只能通过以下公共静态进行访问 最终变量,并且是此方法的唯一Class对象 返回true。
http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#isPrimitive%28%29