0

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は私を混乱させます。

4

1 に答える 1

0

「表現される」という用語に惑わされて、「型」と「値」を混同しないでください。表現は Java 仮想マシンによって作成され、プリミティブ値ごとにインスタンス化されるわけではありません(一部のインスタンスはキャッシュされますが、これはautoboxingになります)。

8 つのプリミティブ型と voidを表す 9 つの定義済み Class オブジェクトがあります。これらは Java 仮想マシンによって作成され、boolean、byte、char、short、int、long、float、および double など、それらが表すプリミティブ型と同じ名前を持ちます。

これらのオブジェクトは、次の public static final 変数を介してのみアクセスでき、このメソッドが true を返す唯一の Class オブジェクトです。

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

于 2012-10-01T10:40:25.440 に答える