とは.class
どういう意味MyClass.class
ですか? クラスの名前とポイントを入力すると、その静的フィールドまたはメソッドにアクセスするために使用されることを理解していますが、それは「.class」とは関係ありません
3 に答える
SomeClass.class
リフレクション APIClass<SomeClass>
を使用したプログラミングに使用できる型を取得します。
を使用してクラスのインスタンスがある場合は、同じ型を取得できますinstance.getClass()
。
ドキュメントはこちらで確認できます。たとえば、次のことができます。
- フィールドやメソッド、注釈などの名前を取得します。
- メソッドを呼び出し、コンストラクターを取得してクラスの新しいインスタンスを作成する
- クラス、スーパークラス、パッケージなどの名前を取得する
.class
クラス名の後に書くと、指定されたClass
クラスを表すオブジェクトを参照します (正式には、名前付きクラス リテラルです)。の型はNombreClase.class
ですClass<NombreClase>
。
たとえば、実行時NombreClase.class
にクラスを表すオブジェクトです。の任意の (直接) インスタンスのメソッドNombreClase
によって返されるのと同じオブジェクトです。getClass()
NombreClase
NombreClase obj = new NombreClase();
System.out.println(NombreClase.class.getName());
System.out.println(obj.getClass().getName())
を任意のクラスの名前に追加して、そのClassオブジェクト.class
のインスタンスを取得できます。
を使用するときは、型付きクラス オブジェクトであるInteger.class
のインスタンスを参照します。Class<Integer>
これはコンパイラによって追加されたフィールド メンバーだといつも思っていましたが、実際には単なるシンタックス シュガーのようです。