Java泛型问题

djs*_*s22 1 java generics

我上课了

public abstract class FakeClass<T extends MyClass> {
    protected HashMap<Character, T> myMap;

    private void myMethod(){
        myMap.put('c', /*???? I need to instatiate something of type T here.*/)
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我无法弄清楚如何实例化T类型的东西.这可能吗?如果是这样,有人能指出我正确的方向吗?

谢谢!

Ted*_*opp 7

这只能通过传递一些关于T的信息来完成myMethod().本主题中描述的一种方法是传递工厂对象T.在这个线程中描述的一个特殊情况是传递一个Class<T> type参数myMethod(),然后可以使用type.newInstance()默认构造函数创建一个新的T对象.(如果T没有默认构造函数,则会失败.)该Class对象用作工厂对象T.

我们需要这一切的原因是由于Java中的类型擦除.