java-注释中不允许从伴随对象分配的静态最终值

java-注释中不允许从伴随对象分配的静态最终值,第1张

概述我在Kotlin中创建了一个课程:classExtras{companionobject{varEXTRA_NAME:String?=nullfunsetExtraName(){varextraName:String?=null//...EXTRA_NAME=extraName}}}我在Applicatio

我在Kotlin中创建了一个课程:

class Extras {    companion object {        var EXTRA_name: String? = null        fun setExtraname() {           var extraname: String? = null           //...           EXTRA_name = extraname        }    }}

我在Application类的onCreate()中调用setExtraname().

然后将EXTRA_name传递给方法的注释(用Java定义):

static final String EXTRA_name = Extras.Companion.getEXTRA_name();@Extra(EXTRA_name)voID doSomething() {}

但是,我得到以下错误:

Attribute value must be constant

为什么?

解决方法:

解决这个

这样编译工作

annotation class Test(    val value: String)object Keys {    const val API_KEY = "AB"}@Test(Keys.API_KEY)fun doSomething() {}

const将值设为compile-time constant,从而可以将其交换为注释.

为什么需要这个

由于注释在运行时之前可被注释处理器访问,因此它们必须是编译时常量,这就是为什么在Kotlin中必须使用const定义它们的原因.

总结

以上是内存溢出为你收集整理的java-注释中不允许从伴随对象分配的静态最终值全部内容,希望文章能够帮你解决java-注释中不允许从伴随对象分配的静态最终值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1092099.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存