我想在 Java 中创建一个或注释@Stub
,以表明某些类仅用于测试。此外,我喜欢将这些类设为已弃用,以阻止我图书馆的用户使用它们。我喜欢在 JSR305 中做一些类似于和其他注释的东西。@Example
@Mock
@Nullable
我想出了这个:
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 的情况下工作?