kotlin - 为什么受保护的变量是 KProperty 而公共/私有变量是 KMutableProperty?
问题描述
在以下每种情况下,我都有一些可变 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
}
}
解决方案
推荐阅读
- python - 如何将外部变量传递给带有变量名的python程序?
- networking - 一个网络中的两个路由器;一台作为网关,一台作为 DHCP 服务器
- r - 最小二乘虚拟变量模型
- vue.js - Vuetify:v-ripple 只能用于块级元素
- json - 无法在 Powershell 中创建带字符串的文件名
- python - 使用 TukeyHSD 进行多重比较时出现类型错误
- javascript - select.prev(".class").val(); 返回未定义的值
- java - 如何忽略特定的库子类?
- python - 如果我的类型是函数,我可以在 Python 中使用什么类型提示?
- android - Android - ConsentInformation - 无法解析事件 FE 预检响应