Существуют некоторые модули, которые содержат методы, помеченные следующей аннотацией:
@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;поскольку аннотация будет выступать в качестве комментария.
Этот вопрос о стекопереработке , кажется, имеет ответ, но мой компилятор все еще жалуется, что поле может быть более приватным.