通用接口类型

时间:2016-12-14 23:22:07

标签: java generics

我没有经常使用泛型,但我觉得我想要的东西实际上是不可能的。我们假设我有一个参数化界面,如:

public interface baseType<M, V> {}

我有两个类使用具体类型参数实现此接口

public class ConcreteA implements baseType<MyType1, MyType2> {}

public class ConcreteB implements baseType<MyType3, MyType4> {}

现在让我们说我想让一个Factory用在客户端代码中,根据类型决定实现哪个具体类:

public class MyFactory {
    public static baseType<?, ?> getConcreteObjectForType(MyType type){
        switch(type){
            case TYPE_A:
                return new ConcreteA();
            case TYPE_B:
                return new ConcreteB();
        }

    public Enum MyType { TYPE_A, TYPE_B }
}

在我想做的客户端代码中

baseType concrete = MyFactory.getConcreteObjectForType(MyType.TYPE_A);

这样的事情可能吗?如果我不能以这种方式建造工厂,那么这种情景的正确创造模式是什么?

0 个答案:

没有答案
相关问题