在使用匿名类时,我正在努力使用更智能的编码风格。
如何使用匿名内部类WITHOUT @SuppressWarnings 在下面的情况下?
以这种方式使用匿名类时:
someMethod( new Y(){
// non-overriding public method
public void echo1(){
// do some stuff
}
} );
...
public abstract class Y
{
// use me as an anonymous class,
// and define any methods when defining me
}
此代码发出警告。
公共方法“echo1”需要注释 @SuppressWarnings( “未使用”)
如果我另外编码echo2,echo3,echo4,......所有方法都需要逐个注释。
为了避免经常编写注释, 我尝试用这种方式编码,以便在所有子类上传播注释效果:
@Inherited // <- This is what I want this annotation to be!
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface SuppressWarningsPropagate extends SuppressWarnings
{
}
然后我尝试用这个注释注释类Y. 这对于仅注释一个基类来说非常有用且简单。
......我发现自己很蠢。
注释之类的 SuppressWarnings 不能“扩展”或“实施”。
相反,这段代码有效并且没有警告,因为SuppressWarnings适用于这个只有一个具体类:
@SuppressWarnings("unused")
public class X
{
private int i;
private int j;
}
总之,我怎么能......
...可能?还是我只是在做白日梦?
提前多多感谢。