我们如何在Java注释声明中引用Kotlin常数?

时间:2019-12-27 16:54:55

标签: kotlin

给出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屏幕截图所示:

Kotlin error

我在这些@JvmStatic声明中尝试了@JvmFieldconst val,但是编译器抱怨这两个属性都不对const属性有效。

我从companion object得到相同的结果:

class OldTownRoad {
  companion object {
    const val COWBOY_HATS = "from Gucci"
    const val WRANGLER = "on my booty"
  }
}

从Java批注引用时,还有其他一些Kotlin常量语法可以工作吗?

0 个答案:

没有答案