0

この gwt javadoc ページでhttp://www.gwtproject.org/javadoc/latest/com/google/gwt/core/client/GWT.html java.lang.Class<?>がパラメータとして create 関数に渡されます。これはどのように有効ですか?.. create(List<Class> classLiteral) or のようなものは理解できましcreate(java.lang.Class classLiteral)たが、そこでの使用方法がどのように私を混乱させます. 明確化は大歓迎です

4

2 に答える 2

4

java.lang.Class<?>インスタンスの完全な型宣言です。と同等です

import java.lang.Class;

...

static <T> T create(Class<?> classLiteral) ...

彼らはjavadocで徹底的に取り組んでいます。java.lang.Classクラスを表すJavaクラスです。ここでその javadoc を読むことができます。

クラスの Class オブジェクトにアクセスするには、

YourClass.class // where class is a reserved java keyword will return an instance of type Class<YourClass>

インスタンスがある場合

YourClass yourInstance = ...
yourInstance.getClass(); // will return an instance of type Class<YourClass>

混乱する場合<?>は、ワイルドカードとして知られています。詳細については、こちらをご覧ください。

于 2013-06-27T19:37:10.727 に答える
2

この場合、メソッドはクラスのインスタンスではなく、クラス リテラルを呼び出します。これは、クラスのインスタンスではなく、実際のクラスをメソッドに渡すことを意味します。

この例は、次のように呼び出す場合です。

作成 (MyClass.class);

ここでは、Class オブジェクトを渡していますが、MyClass のインスタンスは渡していません。そのため、create メソッドは、渡すクラスのインスタンスではなく、クラス オブジェクトを要求しています。

それが class(java.lang.Class classLiteral) の場合、class を拡張する任意のオブジェクトのインスタンスを呼び出します。

于 2013-06-27T19:39:00.767 に答える