2017-08-18 107 views
-1

我也有類似的類下面如何通過參數泛型類型類在Java中

public class MyClass<K,V>{ 

public MyClass(Properties prop){ 
    Map<K,V> myMap = new HashMap<K,V>(); 
} 

} 

我需要通過傳遞String作爲KVMyAnotherClass調用這個類給出,但MyAnotherClass將被視爲用戶通過文件輸入,如何從文件中給定名稱創建MyAnotherClass,並將其傳遞給 MyClass<String,MyAnotherClass> = new MyClass<String,MyAnotherClass>()。達到相同的最佳方式是什麼?

任何幫助,將不勝感激。

感謝

+1

我*丟失*。你在這裏做的事情已經讓你創建一個'MyClass '的實例。 – Makoto

+0

我不明白這個問題,這是什麼問題,你卡在什麼? – f1sh

+1

我想她是在談論從字符串創建一個類來解析名稱 –

回答

0

的Java會刪除編譯的類型,所以你需要在類型用戶通(由類型的Class對象傳遞)在運行時。

import java.util.Properties; 
import java.util.HashMap; 
import java.util.Map; 

public class MyClass<V extends Class<V>> { 

    public MyClass(Properties prop, V type){ 
     Map<String,V> myMap = new HashMap<String,V>(); 
    } 

} 

會給你你需要的東西。它將被稱爲像

new MyClass(properties, Customer.class); 
+0

謝謝,這種方法解決了這個問題。 – deva

+0

@deva很高興幫助。這是我很久以前第一次遇到的問題(當Generics剛剛發佈時)。所以,我很高興能分享我找到的答案。 –