我有一个注释,该注释需要一个编译时常量字符串,并且我想使用我正在使用的一个库中的一个编译时常量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也来自库吗?)。

10-08 00:02