我想在Java中創建一個@Stub
,@Example
或@Mock
註釋以指示某些類僅用於測試。此外,我還希望將這些類作爲棄用來阻止我的庫的用戶使用它們。我喜歡在JSR305中做類似@Nullable
和其他註釋。創建一個@Stub註釋,該註釋充當@Deprecated用Java
我想出了這一點:
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 {
}
不幸的是,dispite使用@TypeQualifierNickname
的,它接縫像被打上我的@Stub
註釋通過的IntelliJ和javac爲廢棄編譯器而不是目標註釋類。
有沒有辦法,這可能無需改變javac或IDE的工作?