在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