This rule is defined by the following Java class: net.sourceforge.pmd.rules.UnusedModifier
Example:
public interface Foo { public abstract void bar(); // both abstract and public are ignored by the compiler public static final int X = 0; // public, static, and final all ignored public static class Bar {} // public, static ignored public static interface Baz {} // ditto } public class Bar { public static interface Baz {} // static ignored }