У меня есть хорошая аннотация поля
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Foo {
// lots of useful, mandatory values here
}
, и я хотел бы создать аннотацию типа
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.CLASS)
public @interface Bar {
...
}
, чтобы любые аннотированные типы @Bar
выдавали предупреждения компилятора, если онисодержат поля, которые не обозначены @Foo.
Другими словами, я бы хотел, чтобы Bar
обеспечил соблюдение контракта, в котором все поля @Bar
-аннотированного класса * должны иметь аннотацию @Foo
, в противном случае я получу хорошее предупреждение от моего компилятора.
Возможно ли это?
Спасибо!