我正在寻找帮助,在java中访问多个不同类型的系统,就像它们是相同的一样。
例如,我有类
private class SystemA{
public void in(boolean input){
//do x;
}
public boolean out(){
//return x;
}
}
假设我想要一个不同系统的ArrayList。这些系统都像SystemA一样实现了进出功能,但它们将是不同的对象,所有对象都具有不同的内部体系结构。
我想例如迭代一个前面提到的arraylist,在所有对象上调用out() - 我该怎么做:
存储多种不同的对象类型。 确保我可以调用arraylist中对象的in和out函数,而不必担心对象是一种特定类型。
答案 0 :(得分:2)
让您的系统类实现一个新的MySystem
接口:
public interface MySystem {
void in(boolean input);
boolean out();
}
E.g:
private class SystemA implements MySystem {
@Override
public void in(boolean input) { ... }
@Override
public boolean out() { ... }
}
您的ArrayList
将会像以下任何一样:
List<MySystem> list = new ArrayList<MySystem>();
List<? extends MySystem> list = someFactoryMethod();
我建议您阅读Java tutorial "What Is an Interface?"了解更多详情。另外,请仔细阅读"subtype polymorphism"。
答案 1 :(得分:0)
这是一个广泛的问题。你需要的是多态性。在这里阅读Java多态:http://home.cogeco.ca/~ve3ll/jatutor5.htm