我开始学习Java,并想知道如何在调用方法时循环遍历类的实例,而不是单独调用每个实例的方法,如下所示:
String potentialFlight = (Flight1.getLocations(response));
if (potentialFlight != null) {
System.out.println(potentialFlight);
}
potentialFlight = (Flight2.getLocations(response));
if (potentialFlight != null) {
System.out.println(potentialFlight);
}
为清楚起见,Flight1
和Flight2
是类Flight
的实例。响应是解析到方法中的用户输入,并且将是一个位置,我将使用getLocations方法返回从该位置离开的任何潜在航班。
如果您需要更多代码,请在下方发表评论。
谢谢你的帮助!
答案 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)
java-8解决方案:
"{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);
}
}