我正在创建一种方法,该方法将遍历飞机的所有对象,这些对象都有起飞,飞行和着陆的方法。我通过使3个不同的for循环(分别执行每个方法)来创建此方法。无论如何,是否可以使用相同的for循环删除冗余代码?
protected void simulate() {
for(Aircraft obj : vehicles) {
obj.takeoff();
}
for(Aircraft obj : vehicles) {
obj.fly();
}
for(Aircraft obj : vehicles) {
obj.land();
}
答案 0 :(得分:2)
要删除冗余代码,您可以
vehicles.foreach(Aircraft::takeOff)
vehicles.foreach(Aircraft::fly)
vehicles.foreach(Aircraft::land)
但是,如果要使它们一起飞行,则需要三个循环。
答案 1 :(得分:0)
您必须使用单独的for
循环。
如果您正在寻找较短的代码,并且正在使用java 8+
,则可以执行以下操作:
vehicles.forEach(Aircraft::takeoff);
vehicles.forEach(Aircraft::fly);
vehicles.forEach(Aircraft::land);
答案 2 :(得分:-1)
只需结合三种方法:
protected void simulate() {
for(Aircraft obj : vehicles) {
obj.takeoff();
obj.fly();
obj.land();
}