作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个 Java 方法
public X findX(...)
它试图找到满足某些条件(在参数中给定)的 X
类型的对象。通常这样的函数不能保证找到这样的对象。我可以想出不同的方法来处理这个问题:
可以编写具有相同签名的 public boolean existsX(...)
方法,该方法应首先调用。这避免了任何类型的异常和空值处理,但您可能会得到一些重复的逻辑。
可以只返回 null(并在 javadoc 中对此进行解释)。调用者必须处理它。
一个人可以抛出一个已检查的异常(哪个适合这个?)。
你有什么建议?
最佳答案
新的 Java 8 Optional
类就是为此目的而创建的。
如果对象存在则返回 Optional.of(x)
其中 x
是对象,如果不存在则返回 Optional.empty( )
。您可以使用 isPresent()
方法检查 Optional
是否存在对象,您可以使用 get()
获取对象。
https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html
关于java - 如果不存在这样的对象,在 findXY 方法中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39305405/
假设我有一个 Java 方法 public X findX(...) 它试图找到满足某些条件(在参数中给定)的 X 类型的对象。通常这样的函数不能保证找到这样的对象。我可以想出不同的方法来处理这个问题
我是一名优秀的程序员,十分优秀!