我正在编写一个库,因此我不经常在同一个项目中的类中使用这些方法。因此,我的IDE(IntelliJ IDEA)一直警告我方法未使用。
当然,显而易见的解决方案是在课程之前放置@SuppressWarnings("unused")
。我不喜欢这个;它没有描述我写这个注释的原因,而且非常详细。我希望制作一个像@LibraryClass
这样的注释,它只是@SuppressWarnings("unused")
的别名。
简而言之,我希望能够改变这一点:
@SuppressWarnings("unused")
public class MyLibraryClass {
public void myLibraryMethod() {
doSomething();
}
}
到此:
@LibraryClass
public class MyLibraryClass {
public void myLibraryMethod() {
doSomething();
}
}
但我不知道该怎么做!我尝试了所有这些,它编译,但IDE仍然警告未使用的方法:
@SuppressWarnings("unused")
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface Library {
SuppressWarnings superAnnotation() default @SuppressWarnings("unused");
String[] value() default {"unused"};
}
答案 0 :(得分:1)
要做你要求的一个方面 - 将某种编译时逻辑附加到注释 - 你需要研究注释处理。注释处理器像代理一样挂钩到Java运行时,并获得有关注释的信息并给出处理它的选项。要使用它,您必须将注释处理器jar放在IDE的类路径上。
一些链接:
http://hannesdorfmann.com/annotation-processing/annotationprocessing101 http://programmaticallyspeaking.com/playing-with-java-annotation-processing.html
但是,这不允许您更改 Intellij检测未使用方法的方式,这似乎更接近您的特定用例。你可以做的是修改Intellij'未使用的方法'检查,以便检查你定义的自定义注释。 YMMV,我以前从未在课堂上这样做过。