gpt4 book ai didi

Java "instanceof"添加多个列表

转载 作者:搜寻专家 更新时间:2023-11-01 02:38:10 24 4
gpt4 key购买 nike

在了解到实现优于扩展之后,我目前正在尝试重构我的代码。目前,我正在尝试创建一个将对象添加到场景中的函数。为了更好的定义每个对象是什么,有多个List,比如用于更新、渲染等的列表。

private List<Updatable> updatables;
private List<Removable> removables;
private List<Renderable> renderables;
private List<Collidable> collidables;

我想像这样在我的 Scene 类中创建一个函数:

public void add(Object o) {
if(o instanceof Updatable)
updatables.add((Updatable) o);
if(o instanceof Removable)
removables.add((Removable) o);
if(o instanceof Renderable)
renderables.add((Renderable) o);
if(o instanceof Collidable)
collidables.add((Collidable) o);
}

同样,我会创建一个类似的删除函数。我的问题是,这是否是糟糕的编码习惯,因为我听说过 instanceof 的缺陷,其次,如果是,是否有解决此问题/重组我的代码以使添加实例变得简单的方法?我不想每次都向每个列表添加一个实例并定义它属于哪个列表。

最佳答案

只需使用重载:add(Updateable u), add(Removable r),

关于Java "instanceof"添加多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41354778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com