我在玩下面的問題:Using Java 8's Optional with Stream::flatMap,並想添加一個方法到自定義Optional<T>
,然後檢查它是否工作。
更準確地說,我想爲我的CustomOptional<T>
添加一個stream()
,如果沒有值,則返回空流;如果存在,則返回具有單個元素的流。爲什麼選擇<T>宣佈爲最終課堂?
但是,我得出結論,Optional<T>
被宣佈爲final。
這是爲什麼?有大量的類沒有被聲明爲final,我個人沒有看到在這裏聲明Optional<T>
final的原因。
編輯作爲第二個問題,爲什麼不能所有的方法都是最終的,如果擔心他們會被覆蓋,並且讓類不是最終的?
使用組合物。 – assylias
關於第二個問題:'final'類中的所有方法都是隱式的'final' –
@assylias這不是問題,儘管我會試着去探索它,並提出爲什麼它在這裏沒有幫助。 – skiwi