2
我是Kotlin的新手,我仍然試圖找到自己的路。我從this question知道,val可以在繼承它的類中用var來重寫,但是這是真的嗎?如果不是,是否有任何可能的解決方法?可以使用val和Kotlin中的繼承類重寫var嗎?
我是Kotlin的新手,我仍然試圖找到自己的路。我從this question知道,val可以在繼承它的類中用var來重寫,但是這是真的嗎?如果不是,是否有任何可能的解決方法?可以使用val和Kotlin中的繼承類重寫var嗎?
有可能用var
覆蓋val
,因爲後面有更多信息比前者更多。
A var
財產封裝了get
和set
,而val
僅包含get
。這樣var
覆蓋val
的get
並添加其set
(因爲爲什麼不)。
反過來顯然是不正確的。
這就是我想的。不用擔心,我設計了一種解決方案,無論如何都適用於我的目的。保持一個布爾值,指示是否已經設置了var。在set方法中,檢查布爾值。如果它是false,則修改var並將其設置爲true。否則,忽略它,不要設置任何東西。然後,不能進行進一步的修改。 –
嗯,這看起來不像最初的問題,但無論如何。看看[委託屬性](https://kotlinlang.org/docs/reference/delegated-properties.html)。你需要的東西與'Delegates.notNull()'非常相似,只是稍作修改。 – voddan
您可以從這裏執行此操作:https://youtrack.jetbrains.com/issue/KT-7180。不要忘記投票;) – voddan