说我有一个班级
@SomeAnnotation(someValue = A_CONST_VAL)
class SomeClass {
companion object {
const val A_CONST_VAL = "a constant value"
}
...
}
以上编辑很好 - 没有问题。但是,如果我想在常量文件中使用A_CONST_VAL
...
import some.package.SomeClass.A_CONST_VAL
object SomeConstants {
const val CONSTRUCTED_CONST_VAL = "some stuff ${A_CONST_VAL}"
}
并使用CONSTRUCTED_CONST_VAL
作为编译时注释值,以便前一个类现在是
@SomeAnnotation(someValue = SomeConstants.CONSTRUCTED_CONST_VAL)
class SomeClass {
companion object {
const val A_CONST_VAL = "a constant value"
}
...
}
编译器认为提供的注释值不是编译时常量。
是什么给出了?
注意:我也尝试将保存常量的文件实现为Java,只是为了查看它是否有用
class SomeConstants {
public static final String CONSTRUCTED_CONST_VAL = "a constant value" + SomeClass.A_CONST_VAL;
}
仍然是编译失败