私たちが言うとき
Class c = Integer.class;
System.out.println(c);
それは印刷します
class java.lang.Integer
java.lang.Integer
クラスであるため、これは理にかなっています。したがって、対応するClass
オブジェクトを持つことができます。
しかし、私がするとき
Class c1 = int.class;
System.out.println(c1);
タイプのオブジェクトを返し、int
クラスではありません(ただし、プリミティブタイプです)。.class
Class
int
primitiveType.class.getName()
そのようなクラス ( )が存在しない場合に、プリミティブ型で .class 操作を許可する背後にある動機は何ですか?
また、あなたが見る場合toString(
)クラスのメソッドClass
public String toString() {
return (isInterface() ? "interface " : (isPrimitive() ? "" : "class "))
+ getName();
}
プリミティブ型はクラスやインターフェースではないため、単に名前 ( int
for int
) を出力します。Class
では、存在しないクラスのオブジェクトの作成を許可するのはなぜでしょうか?