-2
我是Kotlin新人 我有一個班人(姓名)和(年齡)屬性。 我如何設置Person類的擴展屬性一樣,擴展屬性Kotlin
var Person.phone: Int
get() = this.phone
set(value) {this.phone = value}
我怎麼能在這種情況下使用二傳手? 謝謝。
我是Kotlin新人 我有一個班人(姓名)和(年齡)屬性。 我如何設置Person類的擴展屬性一樣,擴展屬性Kotlin
var Person.phone: Int
get() = this.phone
set(value) {this.phone = value}
我怎麼能在這種情況下使用二傳手? 謝謝。
不確定Kotlin可以在這裏完成你想要的。
從docs:
需要注意的是,由於擴展實際上並不插入成員到 類,有一個擴展屬性有 支持字段沒有有效的方法。這就是爲什麼初始化器不允許擴展 屬性。他們的行爲只能通過明確提供 獲取者/設置者來定義。
既然你不能爲你的屬性添加一個後臺字段,你不能真正用這種方式將已存儲數據的那一點添加到現有類中。
您可能需要擴展Person以添加更多內容。
如果我正確地理解了這個問題,你想擁有一個帶有後臺字段的擴展屬性。這是不可能的,因爲擴展不會修改類。但是,您可以嘗試使用委託模擬此行爲,請參閱[我對該問題的回答](https://stackoverflow.com/a/36511438/2196460),我將其鏈接爲重複項。 – hotkey
但是我怎樣才能使用setter方法? – FinalDest
啊,只需將值分配到屬性:'person.phone = 12345' – hotkey