2017-08-18 146 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刚刚发布时)。所以,我很高兴能分享我找到的答案。 –