扩展某个类的Generic Map to Class

时间:2013-09-12 08:29:19

标签: java class generics inheritance

我正在尝试构建一个简单的工厂,在那里我得到一个扩展A的类的类名并返回它的新实例。为此,我正在尝试为类对象构建类名映射:

public abstract class A {

}

public class B extends A {

}

public class AFactory {
    private Map<String, Class<? extends A>> classesMap =
        new HashMap<String, Class<? extends A>>() {
            { 
                add("B", B.class);
            }
        };
}

但java不会调用add()(“The method add(String, Class<B>) is undefined for the type new HashMap<String,Class<? extends A>>(){}”)。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

因为没有名为add的方法,put中的HashMap方法用于在集合中添加键值对。