Re: [分享] 原來 Void 可以這樣用
※ 引述《godfat (godfat 真常)》之銘言:
: 於是 Void 就會是所有 class 的 subclass, 然後就可以在任何 overriding
: method 中把 return type 寫成 Void, 因此,就只能夠 return null; 也就是
: Void 唯一可能的 value (instance), 而這個 Void instance (null),
: 同時也是其他任何 pointer/reference 的可能 value, 因為他是 Void 的
: instance, class hierarchy 的最底層,相對於 Object 在最頂層。
如果 Java 真的放了一個這樣的 Void, 會破壞了現在嚴謹的繼承架構,
而且除非是 syntax based template, 否則一個真的 wildcard class 已經不能
算是符合 covariant return type 的限制了, 從語意到 compiler 都只能當
例外狀況處理, 這樣就不划算了.
話說回來, 印象中 Scala 就有這種 wildcard type?
它還真的有一個 Null class 跟 Nothing class 是 class hierarchy 的最底層,
不過我不會寫 Scala, 我不知道這只是 internal class 還是 programmer 可以直接
使用的型別... 如果 programmer 可以使用, 真好奇 covariant arguments 遇到
這種型別要怎麼處理?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.165.166.80
討論串 (同標題文章)