
我在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-注释中不允许从伴随对象分配的静态最终值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)