2016-08-03 6 views
-1

java.lang.class<Cls>とちょうどClsの違いは何ですか?java.lang.class <Cls>とClsの違いは何ですか?

私は関数にこれを渡す必要が

java.lang.Class<org.xbib.elasticsearch.action.termlist.TermlistRequest> 

私はnew TermlistRequest()を試みたが、それはこれです:

org.xbib.elasticsearch.action.termlist.TermlistRequest 

あなたはそれがJavaであるかを説明することはできますか?このタイプのオブジェクトを作成する方法は?


java.lang.class - 私は何を逃したことは、私は種類を取得するためにCls.classを追加するjava.lang.class<Cls>

+0

あなたは反射について学ぶ必要があります。 – SLaks

+0

問題のあるコンセプトを理解するためには、より多くのコンテキスト(コードのほうが多く)が必要です。呼び出す関数の定義を表示します。 –

+1

前者は 'java.lang.Class'のインスタンスであり、後者はどんなクラスのインスタンスでもあります。クラス名に '.class'を追加してクラスインスタンスを取得することができます。 'クラス clazz = org.xbib.elasticsearch.action.termlist.TermlistRequest.class;'。 – Siguza

答えて

3

を必要としてClass<T>Tの違いはClass<T>Tに関するメタデータを表していることです。 Tのメソッドとフィールドを参照し、メソッドnewInstanceを呼び出して新しいインスタンスを作成することもできます。

Class<T>オブジェクトを作成する限り、最も簡単な方法はMyClass.classという構文を使用することです。

Class<TermlistRequest> tr = TermlistRequest.class; 

Class(ただしClass<T>)オブジェクトもresolving classes dynamicallyによって得ることができます。

関連する問題