创建通用数组作为静态字段

时间:2019-02-14 07:41:05

标签: java annotations

无法编译:

  public static Class<? extends Annotation>[] annots = {
    NotNull.class,
    ColumnType.class,
    RuntimeType.class,
    DefaultValue.class
  };

我收到此错误:

  

通用数组创建

请注意,上述类是注释声明,如下所示:

  @Retention(RetentionPolicy.RUNTIME)
  public @interface NotNull {
    boolean value() default false;
  }

  @Retention(RetentionPolicy.RUNTIME)
  public @interface ColumnType {
    Class<?> value();
  }

有人知道我如何创建通用数组吗?

2 个答案:

答案 0 :(得分:3)

您可以改为使用列表

public static List<Class<? extends Annotation>> annots = Arrays.asList(
          NotNull.class,
          RuntimeType.class,
          DefaultValue.class);
  };

答案 1 :(得分:1)

您将如下创建:

     public static Class<? extends Annotation>[] annots = new Class[] {
        NotNull.class,
        ColumnType.class,
        RuntimeType.class,
        DefaultValue.class
     };

但是,它将给您警告。

  

类型安全性:Class []类型的表达式需要未经检查的转换   符合Class []