我在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