Создать универсальный массив как статическое поле - PullRequest
0 голосов
/ 14 февраля 2019

Это не компилируется:

  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 голосов
/ 14 февраля 2019

Вы можете использовать список вместо

public static List<Class<? extends Annotation>> annots = Arrays.asList(
          NotNull.class,
          RuntimeType.class,
          DefaultValue.class);
  };
0 голосов
/ 14 февраля 2019

Вы создаете, как показано ниже:

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

Тем не менее, он выдаст вам предупреждение.

Безопасность типов: для выражения типа Class [] требуется непроверенное преобразование для соответствияв класс []

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...