为什么有些Java setter方法会自动成为Kotlin属性,但有些人不会这样做?

时间:2017-11-29 05:20:57

标签: android properties kotlin kotlin-interop

e.g。这个WebSettings Java类。

它有一个Java方法setJavaScriptEnabled(boolean),如下所示变为Kotlin属性javaScriptEnabled,但也有setSupportZoom(boolean)不会变成Kotlin属性supportZoom

        settings.javaScriptEnabled = true
        settings.domStorageEnabled = true
        settings.setSupportZoom(false)
        settings.builtInZoomControls = false
        settings.setSupportMultipleWindows(true)

1 个答案:

答案 0 :(得分:3)

来自documentation

  

Boolean访问器方法(其中getter的名称以is开头,而setter的名称以set开头)表示为与getter具有相同名称的属性方法

至于Kotlin 1.2.0:

  

请注意,如果Java类只有一个setter,它将不会在Kotlin中作为属性显示,因为Kotlin此时不支持仅设置属性。

签名boolean isSupportMultipleWindows()的Java类中没有方法,boolean supportMultipleWindows()与Kotlin中的属性表示不匹配。