gpt4 book ai didi

Java - 多种对象的一种方法

转载 作者:行者123 更新时间:2023-12-02 02:27:29 25 4
gpt4 key购买 nike

假设我有一个 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());//应该返回项目

关于Java - 多种对象的一种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47603220/

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