如何访问Kotlin中的内部对象的成员
我无法访问内部对象的成员。
class Foo { val obj = object { val field = 42 } } fun foo() { Foo().obj.field // unresolved reference field }
问题是obj被认为是它自己范围之外的任何类型的任何东西。 这意味着只有obj可以引用自己的属性,因为Any类不包含任何属性。
如果你有一个接口有一个属性,并且让你的对象扩展了这个接口并且实现了这个属性,那么你就可以在任何可见的属性中引用它:
interface FieldHolder { val field: Int } class Foo { val obj = object: FieldHolder { override val field = 42 } } fun foo() { Foo().obj.field // this should now work. }
- 如何在运行时编译和使用Kotlin代码?
- Android检查文本输入(时间)是否与格式匹配
- android anko alert自定义布局currentFocus
- 当从kotlin调用java活动结果时,onActivityResult不会被调用
- Mockito ArgumentCaptor为Kotlin函数
- 如何在kotlin的Grid View和List View之间使用setOnclickListener
- FragmentTransaction不会在Kotlin Android项目中编译
- 有没有办法用Kotlin的Exposed库运行原始的sql
- 如何在RxJava 2和Kotlin中将null传递给可空类型的Observable