Kotlin中的静态const来自Java类名

Ran*_*ku' 9 java const kotlin

我通常在Java中有这个:

package some.package;
public class Clz {
    public static final String ACTION_DIVE = Clz.class.getName() + ".action.DIVE";
}
Run Code Online (Sandbox Code Playgroud)

可以从该类外部访问,Clz.ACTION_DIVE并且值将是"some.package.Clz.action.DIVE".

我怎么能在Kotlin类中做同样的事情,Clz以便可以从外部Java类以相同的方式访问它?我尝试了以下但它不编译,因为它不是常量:

package some.package
object Clz {
    const val ACTION_DIVE = Clz.javaClass.name + ".action.DIVE"
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*lov 7

Clz::class.java.name

请参阅官方Kotlin文档中的类引用.

  • 使用`@ JvmField`而不是`const`(`const`仅用于编译时常量):https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#static-fields (2认同)