Uproszczenie za pomocą wyrażenia lambda

0

Czy możliwe jest uproszczenie poniższego kodu za pomocą wyrażenia lambda?


      PercentField pCtFactor = new PercentField();
      pCtFactor.setValue(new BigDecimal(1));
      PercentField ctFactorDefault = ctFactor.getValue() != null ? ctFactor : pCtFactor;

1

Tu trzeba najpierw poprawić klasę PercentField.
Widać, że to jakiś nonsens:

PercentField pCtFactor = new PercentField();
      pCtFactor.setValue(new BigDecimal(1)

Pokaż definicję klasy.

0

Można tak:

PercentField ctFactorDefault = Optional.of(ctFactor)
    .filter(percentField -> percentField.getValue() != null)
.orElseGet(() -> {
    PercentField pCtFactor = new PercentField();
    pCtFactor.setValue(new BigDecimal(1)); 
    return pCtFactor;
});

ale czy ja wiem, czy jest to uproszczenie...

0
		final PercentField ctFactorDefault;
		if (ctFactor.getValue() != null) {
			ctFactorDefault = ctFactor.getValue();
		} else {
			PercentField pCtFactor = new PercentField();
		    pCtFactor.setValue(new BigDecimal(1));
			ctFactorDefault = pCtFactor;			
		}

Może tak? Ale tutaj lambdy nie ma :) najlepiej gdyby getValue() zwracało optionala.

1 użytkowników online, w tym zalogowanych: 0, gości: 1