我需要退出方法,而不返回值

时间:2020-03-07 23:05:55

标签: java return exit

我有一个方法,该方法返回arrayList中的最小值。但是,如果arrayList为空,它将返回任何内容。有什么我可以做的吗?

private int smallest() {
 if(alList.empty()) {
  //whatever will exit the 
  //function.
 }
 small = alList.get(0);
 for(int i = 1, i < 
  alList.size(), i++) {
  if(small > alList.get(i)){
   small = alList.get(i)
  }
 }
 return small;
}

//Thanks for your help.

2 个答案:

答案 0 :(得分:2)

由于您需要返回一个int,因此,否,您必须返回一个值。

如果可以更改方法签名,则可以:

  1. 返回Integer,然后返回null
  2. 返回Optional<Integer>并返回一个空的Optional。

答案 1 :(得分:0)

有很多选择。最明显的三个:

  1. 抛出一个异常:`if(alList.isEmpty())抛出新的IllegalStateException(“调用minimum()时,alList不能为空);

  2. 确定一个哨兵值,例如0,并返回该值。更新文档以明确表明空列表返回0。

  3. private int smallest(int valueIfEmpty) { if (alList.isEmpty()) return valueIfEmpty; ... }-在这种情况下传递要返回的值,以便调用者可以决定应该发生什么。