我有一个WebView,并且以下属性设置有效:
webview.settings.cacheMode = WebSettings.LOAD_NO_CACHE
但不是这个:
webview.settings.appCacheEnabled = false
相反,我必须使用旧方法:
webview.settings.setAppCacheEnabled(false)
你能告诉我为什么吗?谢谢。
答案 0 :(得分:4)
请注意,如果Java类只有一个setter,那么它在Kotlin中将不会显示为属性,因为Kotlin目前不支持仅设置属性。
如果您查看WebSettings
抽象类,您会看到它仅具有public abstract void setAppCacheEnabled(boolean flag);
方法并且该属性没有getter,因此Kotlin不允许在此处使用属性访问语法。 / p>
实际上,值得注意的是,在创建合成属性时,不仅Kotlin会寻找遵循Java约定的setter和getter方法,而且还会从getter推断属性的类型,以防子类覆盖返回的getter方法时起作用比其父类更具体的类型。