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

问题描述 投票:8回答:1

给出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声明中尝试了@JvmFieldconst 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 ....

kotlin
1个回答
0
投票

我忘了看这是否是Android Studio错误。 :facepalm:

© www.soinside.com 2019 - 2024. All rights reserved.