Java - 循环遍历类的实例,而不是为每个单独的实例调用方法

时间:2016-04-28 21:55:32

标签: java class loops oop methods

我开始学习Java,并想知道如何在调用方法时循环遍历类的实例,而不是单独调用每个实例的方法,如下所示:

String potentialFlight = (Flight1.getLocations(response));
if (potentialFlight != null) {
    System.out.println(potentialFlight);
}

potentialFlight = (Flight2.getLocations(response));
if (potentialFlight != null) {
    System.out.println(potentialFlight);
}

为清楚起见,Flight1Flight2是类Flight的实例。响应是解析到方法中的用户输入,并且将是一个位置,我将使用getLocations方法返回从该位置离开的任何潜在航班。

如果您需要更多代码,请在下方发表评论。

谢谢你的帮助!

3 个答案:

答案 0 :(得分:5)

您可以将所有实例放入Array(List)中,并使用foreach构造迭代所有实例。

例如:

Flight[] flights = { Flight1, Flight2 };
for (Flight f : flights) {
    String potentialFlight = (f.getLocations(response));
    if (potentialFlight != null) {
        System.out.println(potentialFlight);
    }
}

答案 1 :(得分:2)

解决方案:

"{abc,bcd,efg}"

答案 2 :(得分:0)

您应该使用接口进行灵活处理,例如:

public interface IFlyingObject {

    Object getLocations(Object o);

}

public class Plane implements IFlyingObject{
    @Override
    public Object getLocations(Object o) {
        return null;
    }
}
public class Helicopter implements IFlyingObject{
    @Override
    public Object getLocations(Object o) {
        return null;
    }
}
public static void main(String[] args) {
    List<IFlyingObject> flightObjects = new ArrayList<IFlyingObject>();
    flightObjects.add(new Plane());
    flightObjects.add(new Helicopter());
    Object response = new Object();
    for (IFlyingObject f : flightObjects) {
        Object result = f.getLocations(response);
    }
}