[英]How can I pass a Type to a generic Class in java?
大家在這里! 我想將類型傳遞給通用類型,例如Arraylist,該怎么做? 我做一個簡單的示例,以便您知道我想要什么,當然此代碼是錯誤的。
public static void passObjType(Object obj) {
Class clazz = obj.getClass();
ArrayList<clazz> arr = new ArrayList<clazz>();
}
public static void main(String[] args) {
HashSet<String> hs = new HashSet<String>();
passObjType(hs);
}
我希望,如果我輸入一個HashSet對象,則功能PassObjType()將使用HashSet創建一個Arraylist,如果我輸入一個String對象,則它將創建一個具有String的Arraylist。 我怎樣才能做到這一點?
您可以嘗試類似
public static <T> void passObjType(T obj) {
ArrayList<T> arr = new ArrayList<T>();
//...
}
public static void main(String[] args) {
HashSet<String> hs = new HashSet<String>();
passObjType(hs);
}
但是我不確定這是否是您想要的,因為在運行時會刪除通用類型,並且ArrayList<String>
只是ArrayList
(可以存儲任何對象)。
您可以使用Java泛型來獲取對象類型的參數,如下所示:
public static<T> void passObjType(T e) {
ArrayList<T> arr = new ArrayList<T>();
}
public static void main(String[] args) {
HashSet<String> hs = new HashSet<String>();
String hp = new String();
passObjType(hs);
passObjType(hp);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.