【发布时间】:2020-09-24 12:25:26
【问题描述】:
以下是我在使用 LinkedList 实现堆栈时遇到的代码。编码可能看起来不正确且难以辨认。但是,问题不在主题范围内,并且 sn-p 仅提供上下文。
1. public int pop() {
2. int x;
3. if (len==0){
4. System.out.println("Already empty.");
5. return; //Says this method must return a result of type int?
6. }
7.
8. int x = myLinkedList.deleteFromBegin();//this function returns the deleted integer
9. --len;
10. return x;
11. }
上面的代码缺少从方法中退出的正式方式。第 5 行的 return 语句希望在特殊条件下不返回任何值。但通常该函数需要返回一个显示刚刚弹出的数字的 int。
【问题讨论】:
-
您要么返回(带有值),要么抛出
Throwable。 -
您也可以返回一个
Optional<Integer>,但在这种情况下,一个例外似乎也是合适的(毕竟,Java's Stack 就是这样做的)。我不建议返回一些“神奇”值,因为它们也可能都是列表中的元素。 -
@SudhirOjha 糟糕的主意。如何区分信号值和存储在列表中的实际
0或-1?
标签: java return-value