36

とは.classどういう意味MyClass.classですか? クラスの名前とポイントを入力すると、その静的フィールドまたはメソッドにアクセスするために使用されることを理解していますが、それは「.class」とは関係ありません

4

3 に答える 3

18

SomeClass.classリフレクション APIClass<SomeClass>を使用したプログラミングに使用できる型を取得します。

を使用してクラスのインスタンスがある場合は、同じ型を取得できますinstance.getClass()

ドキュメントはこちらで確認できます。たとえば、次のことができます。

  • フィールドやメソッド、注釈などの名前を取得します。
  • メソッドを呼び出し、コンストラクターを取得してクラスの新しいインスタンスを作成する
  • クラス、スーパークラス、パッケージなどの名前を取得する
于 2013-02-26T23:59:46.987 に答える
10

.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())
于 2013-02-27T00:02:33.917 に答える
7

を任意のクラスの名前に追加して、そのClassオブジェクト.classのインスタンスを取得できます。

を使用するときは、型付きクラス オブジェクトであるInteger.classのインスタンスを参照します。Class<Integer>

これはコンパイラによって追加されたフィールド メンバーだといつも思っていましたが、実際には単なるシンタックス シュガーのようです。

于 2013-02-27T00:02:55.033 に答える