我有一个 WebView,并且以下属性设置有效:
webview.settings.cacheMode = WebSettings.LOAD_NO_CACHE
但不是这个:
webview.settings.appCacheEnabled = false
相反,我必须使用旧方法:
webview.settings.setAppCacheEnabled(false)
你能告诉我为什么吗?谢谢。
最佳答案
Note that, if the Java class only has a setter, it will not be visible as a property in Kotlin, because Kotlin does not support set-only properties at this time.
如果您查看 WebSettings
抽象类,您会发现它只有 public abstract void setAppCacheEnabled(boolean flag);
方法,并且没有该属性的 getter,因此 Kotlin 不允许在此处使用属性访问语法。
实际上,值得注意的是,在创建合成属性时,Kotlin 不仅会查找遵循 Java 约定的 setter 和 getter 方法,而且还会从 getter 中推断属性的类型,以防子类重写返回的 getter 方法比其父类(super class)更具体的类型。
关于android - Kotlin - 使用属性访问语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53112580/