2017-02-11 7 views
2

Я хочу ограничить аннотацию, которая будет применяться только к методам, которые имеют другую аннотацию. Например, допустим только @A о методах, которые имеют @B. Я не вижу никакого прямого способа сделать это с типом аннотации @Target. Есть ли способ добиться этого?Предельная цель аннотации только для методов с другой аннотацией

+0

Вы считали отражение? –

+0

@ pm-77-1 Я могу сделать эту проверку во время исполнения с отражением. Но намерение состоит в том, чтобы обеспечить соблюдение этого во время компиляции. –

+1

Не могли бы вы инкапсулировать намерение '@ A' как элемента' @ B'? Казалось бы, это имеет смысл, если они должны быть объединены вместе. Если вы не контролируете определение '@ B'. –

ответ

0

Мне известно о каком-либо определенном языке механизм, который можно было бы использовать для предотвращения размещения аннотации, за исключением случаев, когда присутствовала другая аннотация. Аннотации Java принимают мета-аннотацию @Target, которая может использоваться для ограничения аннотации в определенных местах. Это, кажется, самое близкое, что можно сделать.

Как уже отмечалось, вам необходимо расширить обработку аннотаций, чтобы добавить эту возможность. Я предполагаю, что вы могли бы, возможно, не малую работу, добавить такое расширение в среду разработки, такую ​​как Eclipse.