从Generic类派生类型

时间:2012-08-14 18:25:35

标签: java generics factory type-safety

我有一个泛型类,它带有两个类型参数:

public class MyGenericClass<T, S> {
    private List<T> myList;
    private List<S> mySecondList;

    //...

    public void addToFirstList(T e) {
        myList.add(e);
    }

    //...
}

我希望能够在工厂中创建类的实例时为这两个参数指定具体类型,然后才能从我的其余代码中派生这些类型。

例如,如果我有代码:

public class AccessFactory {        
    public static MyGenericClass<Integer, Float> getInst() {
        return new MyGenericClass<Integer, Float>();;
    }
}

public class UsingFactoryClass {
    private MyGenericClass access;

    ...

    public foo() {
        access = AccessFactory.getInst();
    }
}

我希望能够推导出MyGenericClass类中的access实例UsingFactoryClass使用参数IntegerFloat

是否可以在不必与各地的类型安全警告竞争的情况下这样做?

1 个答案:

答案 0 :(得分:3)

声明为:

private MyGenericClass<Integer, Float> access;