непроверенный вызов <A>getAnnotationsByType (Class <A>) в качестве члена необработанного типа Class - PullRequest
0 голосов
/ 21 марта 2019

Я играю вокруг Аннотация в Java.Я использую отражение, чтобы получить значения в аннотированных значениях во время выполнения.Ниже показано, как я использую отражение, чтобы получить все аннотированные переменные и их значения.

Reflections reflections = new Reflections(".*");
Set<Class<?>> flagAnnotatedClasses =
    new HashSet<Class<?>>() {
      {
        addAll(reflections.getTypesAnnotatedWith(Flag.class));
      }
    };
for (Class cl : flagAnnotatedClasses) {
  // Get all the flags for a particular class annotated with @Flag.
  Annotation[] flags = cl.getAnnotationsByType(Flag.class);
  for (Annotation flag : flags) {
    String name = ((Flag) flag).name();
    String value = ((Flag) flag).value();
    System.out.println("name = " + name + ", value = " + value);
  }
}

Работает нормально, за исключением того, что во время компиляции выдает предупреждение:

Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Итак, я запустил его с -Xlint:unchecked и получил предупреждение ниже:

warning: [unchecked] unchecked call to <A>getAnnotationsByType(Class<A>) as a member of the raw type Class
      Annotation[] flags = cl.getAnnotationsByType(Flag.class);
                                                  ^
  where A is a type-variable:
    A extends Annotation declared in method <A>getAnnotationsByType(Class<A>)

Как мне избавиться от этого предупреждения?

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