Optional類應該改變它保存的對象的狀態嗎?或者每個返回流的中間操作都不應該改變對象的可變性? 例如:應該可選更改其包含的對象的狀態?
Optional.ofNullable(repository.gePersonById(id))
.ifPresent(person -> person.setAge(25));
當它包含一個實例變量時是否適用同樣的原則。 E.g
Optional.ofNullable(this.person)
.ifPresent(person -> person.setAge(25));
這讓我的皮膚有點爬 - 所以我會說,在直覺上,不。不能告訴你爲什麼。我認爲這可能是功能範式和可變狀態的結合。 –
'可選的'不*使對象不可變,它只是增加了不存在的選項。此外,對於沒有副作用的「ifPresent」沒有用例,這使得它突出顯示,例如, 'map'或'filter'。 – Holger