gpt4 book ai didi

java - 如何避免在函数(JAVA)中返回 NULL 值?

转载 作者:搜寻专家 更新时间:2023-11-01 01:21:03 24 4
gpt4 key购买 nike

假设我有一个 List<SomeObject>并有一个函数返回该对象的引用(如果可用)。

SomeObject GetSomeObject(List<SomeObject>, int x){
/* Search for object in list that has a properties
with value x */

if (found)
return /* The object found */
else
return NULL;
}

void DoSomething(SomeObject S){
if(S!=NULL){
/* Do action 1 */
}
else{
/* Do action 2 */
}
}

我在某处读到返回 NULL不是干净代码的一部分。所以我想知道这种情况的等效代码是什么。

更新:我读过 this question我认为我的情况有所不同。在那种情况下,如果 NULL返回然后什么都不做,而如果 NULL 我需要做一些事情返回

最佳答案

如果您使用的是 Java 8,请考虑 Optional类,但请注意它并不适用于所有地方。

许多人(包括我)认为 Optional 应该只用于返回值,而不是参数,尤其不应该用于对象属性。然而,一如既往,没有硬性规定,请注意不要盲目地将 null 处理替换为 Optional,而不了解您是否从中获得任何好处。

例如,在示例代码中,Optional 对您没有任何好处。由于无论 null 与否都执行某些操作,因此您只需将 if(s == null) 更改为 if(s.isPresent())。但是,如果逻辑仅在 s 为非 null 时执行某些操作,而没有 else,您可以使用 Optional.ifPresent() 使事情变得更清晰。当然,Optional 中还有其他有用的方法,可以为您提供更清晰的代码,例如 orElse() 可以有效地使用默认值。

关于java - 如何避免在函数(JAVA)中返回 NULL 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29918073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com