我正在制作一款游戏,其中我想创建一个名为" Inventory"我希望能够存储不同类别的不同类型的对象(如武器,瓶子,食品)
我想知道这是怎么可能的...... arraylist只能制作一种类型的数组......我也试过了。
提前感谢。
答案 0 :(得分:3)
让你的对象扩展像Item
这样的超类,并创建一个Item[]
数组。
答案 1 :(得分:0)
您必须使用公共超类/接口的数组。
最简单的方法是使用Object(Object [])数组,但这包含了添加字面上任何东西的风险。
最好是建立一个所有对象都要实现的接口 - 即使它必须是一个标记接口 - 从而限制了对象的种类,而不是可以放在那里。 当然,如果这些对象有共同的功能(例如像“权重”这样的属性或作为“drawObject”的方法),那么界面实际上除了标记之外还有一些含义
答案 2 :(得分:0)
让所有类别的项目实现相同的界面,“项目”。然后制作Item
类型的arraylist。
或者,如果项目具有共同数据(例如价格),您可以将它们扩展到同一个类别。
扩展相同抽象类的示例:
public abstract class Item {
private int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
public class Weapon extends Item {
private int damage;
public Weapon(int value, int damage) {
this.setValue(value);
this.damage = damage;
}
}
ArrayList
声明:
List<Item> inventory = new ArrayList<Item>();
inventory.add(new Weapon(10, 25));