我正在尝试创建一个名为“items
”的类,其中包含四个私有ArrayList<String>
对象,其方法根据项目的类型将项目添加到ArrayLists。有四个ArrayLists:
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());
我会用什么代替这些评论?
答案 0 :(得分:2)
if ("weapon".equals(type)) {
注意:
首先放置字符串文字以避免NullPointerExceptions
如果无法处理给定类型,则应抛出IllegalArgumentException
也许switch/case
块是一个不错的选择
您可能希望List<Item>
代替List<String>
。你总是可以从Item中获取String,反之则可能很困难。
如果您有List<Item>
,则可能不再需要四个单独的列表了。将所有内容保存在一个列表中。您可以随时过滤类型以获得武器。那会更灵活。
也许类型应该是enum