给出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屏幕截图所示:
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9LVE5Eci5wbmcifQ==” alt =“科林错误”>“ >>
[我在那些@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的这一点:对象OldTownRoad {const val COWBOY_HATS =“来自Gucci” const val WRANGLER =“在我的战利品上”}和这个Java类:公共类Scrap {@Named(OldTownRoad ....
我忘了看这是否是Android Studio错误。 :facepalm: