【发布时间】:2016-06-03 16:17:19
【问题描述】:
我正在用 java 制作一个库存程序,我需要从索引中获取项目。我有点困惑如何从索引中返回项目。
【问题讨论】:
-
到目前为止你尝试过什么?您是要从数组还是实际的 ArrayList 中获取它?你的代码是什么样的?
-
@Orin2005 “你的代码是什么样的?”查看编辑历史。 OP 发布了代码,但后来将其删除。
我正在用 java 制作一个库存程序,我需要从索引中获取项目。我有点困惑如何从索引中返回项目。
【问题讨论】:
public StockItem getItem(int index) {
try
{
return stock.get(index)
}
catch(IndexOutOfBoundsException ex)
{
return null;
}
}
【讨论】:
这是迄今为止最简单的方法!如果您只是想按位置检索项目,那么ArrayList#get 是您的方法。根据 Oracle 文档,
返回此列表中指定位置的元素。
public StockItem getItem(int index) {
return this.stock.get(index);
}
但是,您必须为 JavaDocs 指定的 null 返回添加特殊情况。有两种方法可以做到这一点
public StockItem getItem(int index) {
if (index < 0 || index >= this.stock.size()){
return null;
}
return this.stock.get(index);
}
public StockItem getItem(int index) {
try{
return this.stock.get(index);
}catch(IndexOutOfBoundsException e){
return null;
}
}
我建议第一种方法,因为尽管有额外的逻辑,但在代码中使用Exceptions 作为常规控制流并不是一个好的做法。更多讨论请见this 和this。
【讨论】: