代码之家  ›  专栏  ›  技术社区  ›  rellocs wood

如何使用在其他类文件中定义的常量作为自定义批注中的默认值[重复]

  •  2
  • rellocs wood  · 技术社区  · 6 年前

    这个问题已经有了答案:

    我在自定义注释下面,

    @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"
    

    我不想将直接值写入默认值,但我想从其他类中引用它。 那么我如何才能做到呢?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Héctor    6 年前

    你必须定义 MAX_DATA_ROW 作为 static final :

    public class Constant {
    
        public static final int MAX_DATA_ROW = 1;
    
    }
    
        2
  •  1
  •   Alexander    6 年前

    您的常量max_data_行必须是“public static final”,否则它不是真正的常量。