Java - best way to call a method of each object in a collection
本问题已经有最佳答案,请猛点这里访问。
我试着用Java制作一个2D游戏/游戏引擎。
场景中的每种对象类型都扩展了类"object",该类具有抽象方法"tick()"。此外,还有一个名为"scene"的类,它有一个包含场景中所有对象的哈希图。我希望场景调用hashmap中每个对象的方法"tick()"(每秒60次)。
1 2 3 4 5 6 7 8 9 10 11 12 |
现在我想知道是否有更好、更优雅的方法来实现这一点。可以通过创建一个eventObject&eventListener,或者使用一个observable,使每个对象都成为一个观察者?
1 | objs.forEach((k, v) -> v.tick()); |
1 2 3 | for (MyOb o: objs.values()) { o.tick(); } |
您也可以使用Java 8中的流API来实现这一点:
1 | objs.values().forEach(v -> v.tick()); |