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

问题描述 投票:0回答:2

这不编译:

  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();
  }

有谁知道如何创建一个通用数组?

java annotations
2个回答
2
投票

您可以改用List

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

0
投票

你创建如下:

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

但是,它会给你一个警告。

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

© www.soinside.com 2019 - 2024. All rights reserved.