Почему защищенная переменная - это KProperty, а открытая / закрытая - KMutableProperty? - PullRequest
0 голосов
/ 14 декабря 2018

В каждом из следующих случаев у меня есть некоторые свойства mutable var.Согласно Javadocs изменяемые свойства представлены KMutableProperty, но в этих примерах protected свойство представлено классом KProperty.Почему это так?

class FooA {
    var publicProp: String? = null
    protected var protectedProp: String? = null
    private var privateProp: String? = null

    fun foo() {
        val a = ::publicProp
        val b = ::protectedProp
        val c = ::privateProp
    }
}

open class FooB {
    var publicProp: String? = null
    protected var protectedProp: String? = null
    private var privateProp: String? = null

    fun foo() {
        val a = ::publicProp
        val b = ::protectedProp
        val c = ::privateProp
    }
}

class Bar : FooB() {
    fun bar() {
        val a = ::publicProp
        val b = ::protectedProp
    }
}

Тип подсказки от IDEA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...