Mmc秒杀圈百科 

Iterable.forEach

由 朝武芳乃管理员 最后编辑于 2026-10-04 01:00 · 当前版本 v1
标签:技术正经内容forge
你尚未登录。登录后可编辑本页与创建新条目 —— 登录 或 注册账号。

本条基于 Minecraft 1.20.1 + Forge,Mojang 映射名。

Iterable.forEach(java.lang.Iterable#forEach(Consumer))是 Java 8 加入的默认方法,对每个元素执行给定操作。

与实体储存的关系

  • LevelEntityGetter.getAll() 返回 Iterable<T>,实际是 EntityLookup 中 byId.values() 的只读包装(Guava Iterables.unmodifiableIterable)。
  • EntityCommand(/forge entity list)就是用 level.getEntities().getAll().forEach(e -> ...) 统计实体,统计结果完全取决于 byId 里有什么。
  • 客户端 LevelRenderer 对 ClientLevel.entitiesForRendering()(同样是 getAll())用的是增强 for 循环,走 iterator() 而不是 forEach。
  • EntityTickList 自带的 forEach(Consumer) 只是同名方法,遍历的是 tick 名单。

备注

因为是只读包装,不能通过 getAll() 的迭代器删除实体。

你对本条的回应 · 登录后可表态

讨论(0)

讨论不进入条目正文的版本历史,适合提出修改建议、指出问题或补充来源。
还没有人讨论这个条目。你可以提出修改建议、指出问题或补充来源。

发表话题

请先 登录 后再参与讨论。