所以再一次,抱歉这个问题可能已经被回答/问了很多,但我不确定我在寻找什么
我目前正在为游戏制作模组,需要注册我创建的自定义项目。我为每种类型的项目创建了自定义类,其中包含我需要访问的各种变量。问题是,它们都继承的类没有这些变量/数据。
我最初的尝试是这样的(伪代码)
public void addItem(Item itemc)
{
Object item = null;
if (itemc.getClass().equals(ItemTool))
item = (ItemTool) itemc;
if (itemc.getClass().equals(ItemFood))
item = (ItemFood) itemc;
.......etc..........
registerItem(item,item.name);
registerItemRenderer(item,item.meta,item.model);
}
但这不起作用,我收到一条错误消息,说项目(被视为初始化的对象)没有这些成员。
现在我只是重载了方法 addItem 以接受我制作的每个自定义项目类(超过 10 个 atm),但这并不是我真正想要的。
有没有办法将 Object 的类型更改为我将作为参数传递的任何类,然后使用它?