【发布时间】:2015-04-22 19:28:37
【问题描述】:
假设我有一个方法需要我遍历一个数据结构,然后返回一个存储在特定索引中的数字,如果它等于给定的数字。如果数据结构中的两个数字相等,那么它将返回第一个出现的数字。
public static int method(int value, List<Integer> list){
for (Integer i: list){
if (i == value){
return i;
}
}
}
这是一个有问题的解决方案,因为该方法不一定会返回。我想您可以创建一个变量来存储对等效值的引用并返回它,因此编译器不会发出有关缺少返回语句的错误,但这将是毫无意义的代码。
有没有更好的方法来做到这一点?在返回对象的情况下,是只返回 0 还是返回 null?
【问题讨论】:
-
@LawrenceDol。 OP 在问题“这是一个有问题的解决方案,因为该方法可能不一定返回”中指出了这一点。
-
如何将签名改为public static Optional
(int, value, List list) -
@beresfordt:我认为代码纯粹是示范性的,而不是实际的(但是,谁知道,这些天)。
-
是的,我在发布之前的评论后几秒钟就意识到了,所以删除了它
-
是的,这不是我正在使用的实际代码。这只是一个理论问题。
标签: java loops if-statement for-loop return