鉴于Kotlin的这一点:
object OldTownRoad {
const val COWBOY_HATS = "from Gucci"
const val WRANGLER = "on my booty"
}
和这个Java类:
public class Scrap {
@Named(OldTownRoad.COWBOY_HATS)
public void lilNasXrefs() {
System.out.println(OldTownRoad.COWBOY_HATS);
System.out.println(OldTownRoad.WRANGLER);
}
}
编译器对println()
调用感到满意。它抱怨COWBOY_HATS
在@Named
批注中使用,说“属性值必须恒定”,如以下Android Studio 3.5.3屏幕截图所示:
我试着@JvmStatic
和@JvmField
这些const val
声明,但是编译器会抱怨,无论是有效的const
属性。
我从中得到了相同的结果companion object
:
class OldTownRoad {
companion object {
const val COWBOY_HATS = "from Gucci"
const val WRANGLER = "on my booty"
}
}
从Java批注引用时,还有其他一些Kotlin常量语法可以工作吗?
最终瓦尔?.....
—
里克·桑切斯
您正在使用哪个Kotlin版本?我无法重现。
—
natario
@RickSanchez:
—
CommonsWare,
final const val
结果“最终是多余的修饰符”。既final val
不能解决问题,也不能解决问题。
@natario:Kotlin 1.3.61
—
CommonsWare,
@natario:感谢您指出您无法对其进行复制!看来这是恶意的Android Studio检查错误-代码可以正常编译。
—
CommonsWare,