我有一个注释,该注释需要一个编译时常量字符串,并且我想使用我正在使用的一个库中的一个编译时常量int对其进行初始化。所以我最终要做的是这样的:
public class LibraryClass {
public static int CONSTANT_INT = 0; //Where 0 could be whatever
}
public class MyClass {
private static final String CONSTANT_STRING = "" + LibraryClass.CONSTANT_INT;
@AnnotationThatNeedsString(CONSTANT_STRING)
public void myMethod() {
//Do something
}
}
我的问题是,有没有比使用
"" + PRIMITIVE_TO_CONVERT
将原语转换为编译时常量字符串更好的方法?有什么方法可以将原语“投射”到String?因为这样做很奇怪。 最佳答案
我认为您当前的解决方案是最好的,因为您正确地确定了批注需要“编译时常量”值。 "" + INT_VALUE
至少比通过重复该库中的值来创建冗余更好,但是要作为字符串("23"
),并且它是Java语言的“不错”功能,可将解决方案确定为编译时常量。
如果可以,您当然也可以更改Annotation以将int作为值参数,如另一个答案中所建议的(但我认为Annotation也来自库吗?)。