java - 如何使用另一个类文件中定义的常量作为自定义注释中的默认值

标签 java java-8

我有以下自定义注释,

@Inherited
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnno {

    String value() default "";

    // use constants value defined in other file
    int capacity() default com.constant.Constant.MAX_DATA_ROW;
}

我收到一个编译错误:

"Attribute value must be constant"

我不想直接将值写入默认值,但我想从其他类引用它。 那么我怎样才能做到这一点呢?

最佳答案

您必须将 MAX_DATA_ROW 定义为 staticfinal:

public class Constant {

    public static final int MAX_DATA_ROW = 1;

}

关于java - 如何使用另一个类文件中定义的常量作为自定义注释中的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51320883/

相关文章:

java - java中对象列表的字母数字排序

java - 提供抽象方法的实现但限制可见性

java - 将两个列表组合成一个唯一的列表(基于一定的字段逻辑)

java - 从数组制作高效的 Java 8 排序 Spliterator

java - 将 watch 置于断点时,Java 调试器显示盒装整数而不是原始整数

java - 可以从 SHA-1 切换到 SHA-256 吗?

java - 交换方法java的问题

java - Tomcat热部署,JDBC驱动注销失败

parsing - 使用java 8中的流读取空格分隔的文本文件的第一列

Java 8 : Idiomatically creating a Comparator for ordering objects based on their index in a List