我正在创建一个遍历飞机对象的列表的方法,这些对象都具有起飞,飞行和着陆方法。我通过使3个不同的for循环(分别执行每个方法)来创建此方法。无论如何,使用相同的for循环删除冗余代码?

protected void simulate() {
    for(Aircraft obj : vehicles) {
        obj.takeoff();
    }
    for(Aircraft obj : vehicles) {
        obj.fly();
    }
    for(Aircraft obj : vehicles) {
        obj.land();
    }

最佳答案

要删除冗余代码,您可以

vehicles.foreach(Aircraft::takeOff)
vehicles.foreach(Aircraft::fly)
vehicles.foreach(Aircraft::land)


但是,如果要使它们一起飞行,则需要三个循环。

08-17 01:03