Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java—调用集合中每个对象的方法的最佳方式_Java - Fatal编程技术网

Java—调用集合中每个对象的方法的最佳方式

Java—调用集合中每个对象的方法的最佳方式,java,Java,我正在尝试用Java制作一个小的2D游戏/游戏引擎 场景中的每种对象类型都扩展了类“object”,该类具有抽象方法“tick()”。此外,还有一个名为“Scene”的类,它有一个包含场景中所有对象的HashMap。我希望场景调用HashMap中每个对象的方法“tick()”(每秒60次) 公共类场景{ 私有HashMap objs;//包含所有对象的HashMap 私人空白勾号(){ 对于(条目e:objs.entrySet()){ 对象o=e.value(); o、 勾选(); } } [.

我正在尝试用Java制作一个小的2D游戏/游戏引擎

场景中的每种对象类型都扩展了类“object”,该类具有抽象方法“tick()”。此外,还有一个名为“Scene”的类,它有一个包含场景中所有对象的HashMap。我希望场景调用HashMap中每个对象的方法“tick()”(每秒60次)

公共类场景{
私有HashMap objs;//包含所有对象的HashMap
私人空白勾号(){
对于(条目e:objs.entrySet()){
对象o=e.value();
o、 勾选();
}
}
[...]
}
现在我想知道是否有更好、更优雅的方法来实现这一点。可能通过创建一个EventObject&EventListener,或者通过使用一个可观察对象并使每个对象成为观察者

for (MyOb o: objs.values()) {
    o.tick();
}
您还可以使用Java 8中的流API执行此操作:

objs.values().forEach(v -> v.tick());
您还可以使用Java 8中的流API执行此操作:

objs.values().forEach(v -> v.tick());

您可以执行
objs.values().forEach(value->value.tick())我首先要更改的是类对象的名称。您将不断与自动导入的标准java.lang.Object类发生冲突。那么您认为使用for循环是实现这一点的最佳/最简单的方法吗?是的,我将这样做……您可以执行
objs.values().forEach(value->value.tick())我首先要更改的是类对象的名称。您将不断与自动导入的标准java.lang.Object类发生冲突。那么您认为使用for循环是实现这一点的最佳/最简单的方法吗?是的,我将这样做。。。
objs.forEach((k, v) -> v.tick());