Да, как упомянуто yegor256 , это возможно, поскольку JDK 8 принял JSR 308 (типовые аннотации) .
Так что теперь всякий раз, когда аннотация оформлена@Target({ElementType.TYPE_USE})
может использоваться для аннотирования анонимного класса во время выполнения.Например:
@Target({ ElementType.TYPE_USE })
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation {
String value();
}
Object o = new @MyAnnotation("Hello") Object() {};
Сложная часть: как получить доступ к аннотации:
Class<?> c = o.getClass();
AnnotatedType type = c.getAnnotatedSuperclass();
System.out.println(Arrays.toString(type.getAnnotations()));