如何在java中将参数传递给Generic类

时间:2017-08-18 14:46:28

标签: java class generics

我的课程类似于下面给出的课程

public class MyClass<K,V>{

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

}

我需要将String作为KV作为MyAnotherClass传递来调用此类,但MyAnotherClass将被视为用户输入文件,如何从文件中的给定名称创建MyAnotherClass,并将其传递给  MyClass<String,MyAnotherClass> = new MyClass<String,MyAnotherClass>()。实现同样目标的最佳途径是什么。

任何帮助都将不胜感激。

谢谢

1 个答案:

答案 0 :(得分: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);