## Why is this an issue?

The methods declared in an `interface` are `public` and `abstract` by default. Any variables are automatically `public static final`. Finally, `class` and `interface` are automatically `public static`. There is no need to explicitly declare them so.

Since annotations are implicitly interfaces, the same holds true for them as well.

Similarly, the `final` modifier is redundant on any method of a `final` class, `private` is redundant on the constructor of an `Enum`, and `static` is redundant for `interface` nested into a `class` or `enum`.

### Noncompliant code example

    public interface Vehicle {

      public void go(int speed, Direction direction);  // Noncompliant

### Compliant solution

    public interface Vehicle {

      void go(int speed, Direction direction);