[英]Java generic at return type
我見過這樣的代碼,無法理解它的意義:
public class ClassA{
public <T> void getContactName(ContactList<T> contactList){
//do something
}
}
基本上我不明白這一點。 該類編譯沒有任何錯誤。 我認為ClassA也應該與參數'T'一致。
謝謝
定義
public <T> void getContactName(ContactList<T> contactList){
//do something
}
表示只有方法是通用的,名稱為T
的類型僅在方法范圍內有效。 如果T
類型參數僅在單個方法中使用,則不需要該類是通用的。
作為旁注,請記住,在Java中,您可以制作通用:
但是你不能制作通用的:
在Java Tutorial on Generic Methods and Generic Types以及泛型方法的詳細示例和用法中有更好的解釋。
這是一個例子(內置Arrays
類)。 查看方法簽名,確保方法返回類型與方法參數完全相同,因為類本身不是通用的,但您可以將方法設置為泛型。
class Arrays {
public static <T> List<T> asList(T... a) {
...
}
您可以創建上面提到的static generic utility methods
,您don't need to create object
類的don't need to create object
。
根據Java語言規范:
您可以像這樣使用您的方法:
new ClassA().<String>getContactName(contactList);
或者您不能指定類型參數
new ClassA().getContactName(contactList);
您可以閱讀規范以獲取更多詳細信息以及您可以在此處找到的常見問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.