是否可以编写相当于java的等效
interface Foo {
public static final INSTANCE = new Foo {};
}
在kotlin?
如果Foo
是一类,我可以使用:
class Foo {
companion object {
@JvmField
val INSTANCE = object : Foo() {}
}
}
但是,使用接口给出了一个错误:
jvmfield不能应用于接口的配置对象中定义的属性
@JvmStatic
也不起作用。
来自Kotlin 1.3您可以做:
interface Foo {
companion object {
@JvmField val INSTANCE = object : Foo {}
}
}
并将其从Java称为Foo.INSTANCE
。
以下对我有用。
interface Foo {
fun bar()
companion object {
val INSTANCE = object : Foo { // There are no () An interface cannot be instantiated.
override fun bar() {
//Do something
...
}
}
}
}
然后,在您的活动中,只需调用Foo.INSTANCE
即可将实例返回到Foo
。