gpt4 book ai didi

java - 如何检查ArrayList中新对象的参数?

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

我正在尝试创建一个名为“items ”的类,其中包含四个私有(private) ArrayList<String>对象,具有根据项目类型将项目添加到 ArrayList 的方法。有四个 ArrayList:

private ArrayList<String> itemlistweapons = new ArrayList<String>();
private ArrayList<String> itemlistapparel = new ArrayList<String>();
private ArrayList<String> itemlistaid = new ArrayList<String>();
private ArrayList<String> itemlistmisc = new ArrayList<String>();

将项目添加到列表的方法具有以下代码:

public void additem(String name, String type){
itemlistweapons.add(new Item(name, type).toString());
}

它添加的 Item 对象来自另一个名为 Item 的类带有一个采用项目名称和类型的构造函数。

所以,我想知道的是,我该怎么说:

public void additem(String name, String type){
if //the item added has the type "weapon"
itemlistweapons.add(new Item(name, type).toString());
else if //the item added has the type "apparel"
itemlistapparel.add(new Item(name, type).toString());
else if //the item added has the type "aid"
itemlistaid.add(new Item(name, type).toString());
else if //the item added has the type "misc"
itemlistmisc.add(new Item(name, type).toString());

我会用什么来代替这些评论?

最佳答案

 if ("weapon".equals(type)) {

注释:

  • 首先放置字符串文字以避免 NullPointerExceptions

  • 如果无法处理给定类型,则应抛出 IllegalArgumentException

  • 也许是switch/case block 是一个不错的选择

  • 也许您想要List<Item>而不是List<String> 。您始终可以从 Item 中获取 String,反之则可能会很困难。

  • 如果您有List<Item>也许您不再需要四个单独的列表。只需将所有内容都放在一个列表中即可。您始终可以过滤类型以仅获取武器。这样会更灵活。

  • 也许类型应该是 enum

关于java - 如何检查ArrayList中新对象的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36853831/

25 4 0