2016-10-06 78 views
0

我寫了這個醜陋的怪物:可選類重構

Optional<Transaction> secondSide = findSecondSide(transaction.getId()); 
     if(secondSide.isPresent()) { 
      secondSide.get().setFlag("Y"); 
      save(secondSide.get()); 
     } 

有沒有一種方法,我可以重構這個,不使用isPresent()get()

回答

7

使用ifPresent method

secondSide.ifPresent(s -> { s.setFlag("Y"); save(s); }); 
+0

謝謝,我錯過了大括號! – Dargenn

+0

@達根如果你嘗試了一些東西,展示它! –

+0

我試過 'secondSide.ifPresent(S - > \t \t \t \t s.setBeneficiary( 「Y」); \t \t \t \t保存(S); \t \t \t \t);' 我對於使用lambda來說很新,所以我沒有意識到我做錯了什麼。 – Dargenn