[英]How does Kotlin property access syntax work for Java classes (i.e. EditText setText)?
[英]Kotlin - Use property access syntax issue
好吧,我有一個WebView,以下屬性設置有效:
webview.settings.cacheMode = WebSettings.LOAD_NO_CACHE
但不是這個:
webview.settings.appCacheEnabled = false
相反,我必須使用舊方法:
webview.settings.setAppCacheEnabled(false)
你能告訴我為什么嗎? 謝謝。
根據官方文件 :
請注意,如果Java類僅具有一個setter,則它在Kotlin中將不會顯示為屬性,因為Kotlin目前不支持僅設置屬性。
如果查看WebSettings
抽象類,則會看到它僅具有public abstract void setAppCacheEnabled(boolean flag);
方法,並且沒有此屬性的獲取方法,因此Kotlin不允許在此處使用屬性訪問語法。
實際上,值得注意的是,在創建合成屬性時,不僅Kotlin會尋找遵循Java約定的setter和getter方法,而且還會從getter推斷屬性的類型,如果子類覆蓋了返回更特定類型的getter方法,則該屬性會起作用比他們的超類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.