Java-许多对象的一种方法



说我有一个Java文件,其中有500个Item的自定义对象。现在,说我希望用户能够在程序中的列表中添加/删除这些对象中的任何一个。我想尝试避免这样做:

public class Inventory {
    public static ArrayList<Item> inv = new ArrayList<>();
    public static void addItem1 {
        inv.add(Item.Item1); //Pulling from Item class
    } //addItem1()
    public static void removeItem1 {
        inv.remove(Item.Item1);
    } //removeItem1()
    public static void addItem 2 {
        . . .
    }
    . . .
}

这样做,我必须为每个项目做一个添加和删除功能。将有数百个项目,所以我真诚地希望用户可以从程序内部这样做的更好的方法。这将进一步糟糕,因为它如何需要一些大量的嵌套switch语句来交换所有内容。

相反,我希望实现一个单一的加法方法和单个删除方法,可以将用户的输入(具有他们要添加的Item的文字名称的字符串),并以某种方式找到/选择Item。实施思想?

使用通用类怎么样?

public class Inventory<T> {
public static ArrayList<Item> inv = new ArrayList<>();
public void addItem (T item){
    inv.add((Item)item); // where item can be anything from Item.item1 to Item.item500
}
public void removeItem (T item){
    inv.remove((Item)item);
}

在这种情况下,查看您的物品是否实际上是一个类似的事情:System.out.println(item.getClass().getName()); //should return Item

也许使用:

public void setItem(Item item){
    inv.add(item);
}

然后使用相同的概念进行删除。

相关内容

最新更新