我正在用Java编程,无法弄清楚如何。我不知道这是怎么调用的,所以我希望通过发布一个例子来得到答案。
void MethodX(){
if (A.isTrue){
x = A.Method1);
}else if (B.isTrue){
x = B.Method1);
}else if (C.isTrue){
x = C.Method1);
}else if (D.isTrue){
x = D.Method1);
}
}
我认为有一种更简单的方法可以做到这一点,但无法弄清楚如何做到这一点。我不需要确切的答案,但有一些关键字知道要搜索的内容会很好... 提前谢谢!
答案 0 :(得分:0)
你可以让你的A,B,C和D类中的每一个都实现一个接口,其上有isTrue()
和method1()
方法,让我们称之为OurObject
为了论证。
将每个类添加到OurObject
类型的列表中并循环遍历它们:
List<OurObject> ourObjectList = Arrays.asList(A,B,C,D);
for (OurObject : ourObject : ourObjectList ) {
if (ourObject.isTrue()) {
ourObject.method1();
break;
}
}
break
存在,以便我们在找到真实案例后突破循环。如果按照A,B,C和D的顺序将类添加到列表中,这将在您的问题中重新创建if else if
功能。
如果您希望isTrue()
方法返回true的每个类都调用method1()
,请从循环中删除break
。