gpt4 book ai didi

java - 指定构造函数,稍后初始化(Java)

转载 作者:太空宇宙 更新时间:2023-11-04 10:55:17 26 4
gpt4 key购买 nike

我目前正在为 Android 创建一个 Java 2D 游戏引擎。引擎基本上是一个实体组件系统。您首先创建一个蓝图(id 的包装器),您可以将其与组件类型关联起来。您可以稍后“构建”蓝图。这意味着与蓝图关联的每种类型的对象都会被初始化并放入更新循环中。返回一个实体(也是 int id 的包装器),您可以通过它访问组件。

添加组件时,没有对象被初始化,这意味着我当时无法提供构造函数,这就是我想以某种方式解决的问题。

这就是我目前将组件类型与蓝图关联的方式:

public <T extends Component> void addComponent(BluePrint bluePrint, Class<T> type) {
bluePrintMap.get(bluePrint.getId()).add(type);
}

我想返回一个方法引用,或者只是提供构造函数参数作为 addComponent 的参数并存储它们以供以后使用。我不知道如何解决这个问题,因为我什至事先不知道构造函数参数的长度。任何输入都会被接受。

编辑:一个可能的解决方案是实际创建组件的实例,然后在用户决定构建蓝图时创建一个副本,但这会给我带来一些其他问题。

最佳答案

最后,我只是采用了我在编辑中提供的解决方案,到目前为止它似乎工作得很好,而且我还获得了类型安全,这很好。一个缺点是如果我想让用户在创建脚本组件时更容易,我认为引擎必须使用序列化来执行复制,这有点慢。

关于java - 指定构造函数,稍后初始化(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47372893/

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