0

当我查看 Class.java 的 javadocs 时,它说:

/*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 让我很困惑。

4

1 回答 1

0

不要被“代表”这个词弄糊涂,搞乱“类型”和“价值”。表示是由 Java 虚拟机创建的,它们不会为每个原始实例化(这将是autoboxing,尽管有些实例被缓存):

有九个预定义的 Class 对象来表示八种原始类型和 void。它们由 Java 虚拟机创建,并且与它们所代表的原始类型具有相同的名称,即 boolean、byte、char、short、int、long、float 和 double。

这些对象只能通过以下公共静态 最终变量访问,并且是此方法返回 true 的唯一 Class 对象。

http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#isPrimitive%28%29

于 2012-10-01T10:40:25.440 回答