如何' autocall' java中的一个方法

时间:2014-03-17 10:04:19

标签: java

我正在用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);
    }
}

我认为有一种更简单的方法可以做到这一点,但无法弄清楚如何做到这一点。我不需要确切的答案,但有一些关键字知道要搜索的内容会很好... 提前谢谢!

1 个答案:

答案 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