一部のクラスがテスト用であることを示すために、Java で@Stub
、@Example
またはアノテーションを作成したいと思います。@Mock
また、ライブラリのユーザーがそれらを使用するのを思いとどまらせるために、これらのクラスを非推奨にするのが好きです。@Nullable
JSR305 に類似したものやその他のアノテーションを作成するのが好きです。
私はこれを思いついた:
import javax.annotation.meta.TypeQualifierNickname;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.*;
@Deprecated
@Retention(RetentionPolicy.RUNTIME)
@TypeQualifierNickname
@Target(value=TYPE)
public @interface Stub {
}
そしてユースケース:
@Stub
public final class SuperAwesome implements Feature {
}
残念ながら、 を使用しているにもかかわらず、ターゲットの注釈付きクラスではなく@TypeQualifierNickname
、私の@Stub
注釈が Intellij および javac コンパイラによって非推奨としてマークされているようです。
javac や IDE を変更しなくても機能する方法はありますか?