我在Java 8中读了一些关于Optional
(遗憾的是我不记得在哪里)的用途,我很惊讶作者没有提到Optional
作为一个类的属性。在一个类中使用Optional作为属性是否是一种很好的做法?
由于我在课堂上使用可选项很频繁,所以我想知道这是否是一种好的做法。或者我可以更好地使用普通属性,当它们没有设置时返回null
?
注意:它可能看起来像我的问题是基于意见,但我觉得在课堂上使用Optional
真的不是要走的路(阅读后提到的帖子后)。但是,我喜欢使用它,并且找不到使用它的任何缺点。
例
我想举一个例子来阐明。我有一个类Transaction
,这是建立这样的:
public class Transaction {
private Optional<Customer> = Optional.empty();
....
VS
public class Transaction {
private Customer = null;
....
当在Customer
检查,我认为这是最合理的使用transaction.getCustomer().isPresent()
比transaction.getCustomer() != null
。在我看来,第一个代码比第二个代码更清洁。
@AdamSiemion在这里,我们是在谈论番石榴的“可选”或Java 8的“可选”吗? – Jesper 2015-03-13 13:44:41
@AdamSiemion感谢您的链接!我没那么有经验,所以不知道番石榴已经拥有了它。然而,这里提到的主要原因是“可选”有三种可能性:存在,不存在和无效。 Java 8已经不存在了,所以参数无效了。 – bashoogzaad 2015-03-13 13:45:35
@bashoogzaad是否有三个(null,absent,present)或两个选项(null/empty,present)它不会改变'Optional'的用途。 – 2015-03-13 13:57:36