2016-08-03 59 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 - 我錯過了我需要追加.classCls要獲得類型java.lang.class<Cls>

+0

您需要了解反射。 – SLaks

+0

我們需要更多的上下文(即更多的代碼)來理解你遇到什麼問題。向我們展示您想要調用的功能的定義。 –

+1

前者是'java.lang.Class'的一個實例,後者是任何類的實例。您可以將'.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獲得。

相關問題