Использовать аннотацию в другой аннотации - PullRequest
0 голосов
/ 12 октября 2018

Существуют некоторые модули, которые содержат методы, помеченные следующей аннотацией:

@SuppressWarnings({"WeakerAccess"})

Когда эта аннотация добавлена, компилятор не выдает предупреждение о том, что модификатор доступа может быть более закрытым.Иногда это происходит потому, что некоторый дочерний класс (вне модуля) переопределит метод.В этом случае мы должны добавить комментарий о том, что метод должен быть переопределен.Теперь для каждого метода и переменной у нас есть две вещи: аннотация и комментарий.

Позволяет ли Java создавать аннотацию, которая может указывать оба случая.Вот что у меня есть:

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.CONSTRUCTOR;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.LOCAL_VARIABLE;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.ElementType.TYPE;

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
@SuppressWarnings({"WeakerAccess"})
public @interface WillBeOverriden { } // Ignore the ugly name

Цель этой новой аннотации состоит в том, что она будет вести себя точно так же, как аннотация SuppressWarnings, и устраняет необходимость добавления комментария Java;поскольку аннотация будет выступать в качестве комментария.

Этот вопрос о стекопереработке , кажется, имеет ответ, но мой компилятор все еще жалуется, что поле может быть более приватным.

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