Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java注释声明中引用Kotlin常量?_Kotlin - Fatal编程技术网

如何在Java注释声明中引用Kotlin常量?

如何在Java注释声明中引用Kotlin常量?,kotlin,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_

鉴于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()
调用感到满意。它抱怨在
@Named
注释中使用了
牛仔帽
,称“属性值必须是常量”,如Android Studio 3.5.3屏幕截图所示:

我在那些
const val
声明上尝试了
@JvmStatic
@JvmField
,但编译器抱怨这两种声明对
const
属性都无效

我从一个
伴星对象
得到相同的结果:

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

当从Java注释中引用时,是否还有其他Kotlin常量语法可以使用?

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

结果表明,如果您运行代码,它运行得很好。Android Studio 3.5.3似乎在无谓地抱怨

我提出申请试图得到问题的确认


非常感谢@natario,他的评论让我意识到这可能是一个IDE问题

最终val?…您使用的是哪种Kotlin版本?我无法复制它。@RickSanchez:
final const val
导致“final是一个冗余修饰符”。这和
final val
都不能解决问题。@natario:Kotlin 1.3。61@natario:谢谢你指出你不能重新修改它!这似乎是一个恶意的Android Studio检查错误——代码编译得很好。酷!值得一提的是,我使用了一个稍旧的AS版本(仍然是3.5)。哦,我明白了!我还有一个较旧的版本,Kotlin 1.3.70的3.3.2As。这个问题已经解决了(在Android Studio 3.6.1中)