在Kotlin中声明静态接口字段
是否有可能编写Java的等价物
interface Foo { public static final INSTANCE = new Foo {}; }
在Kotlin?
如果Foo
是一个class,我可以使用:
class Foo { companion object { @JvmField val INSTANCE = object : Foo() {} } }
但与一个接口,它给出了一个错误:
JvmField无法应用于接口的伴随对象中定义的属性
@JvmStatic
也不起作用。
以下为我工作。
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
。