public Object selectClass(Enumvar var){
switch(var){
case SOMETHING:
return new OneClass();
case SOMETHINGELSE:
return new AnotherClass();
return null;
}
所以我会打电话给
selectClass(SOMETHING).Somefunction();
有可能是这样的吗?
答案 0 :(得分:0)
您需要引入一个声明该方法的接口/类,并让所有类返回实现/扩展。
public interface Something {
void Somefunction();
}
public Something selectClass(Enumvar var){
switch(var){
case SOMETHING:
return new OneClass();
// ...
}
答案 1 :(得分:0)
是的,另一种方法:
public interface Instance {
void Somefunction();
}
public interface InstanceClass {
public Instance create();
}
public enum Enumvar implements InstanceClass {
SOMETHING {
public Instance create() { return new OneClass(); }
},
SOMETHINGELSE {
public Instance create() { return new AnotherClass(); }
};
}
您现在可以写:
SOMETHING.create().SomeFunction();
或:
SOMETHINGELSE.create().SomeFunction();