include::../description.adoc[] == Noncompliant Code Example ---- void doSomething(int a, int b) { // "b" is unused compute(a); } ---- == Compliant Solution ---- void doSomething(int a) { compute(a); } ---- == Exceptions The rule will not raise issues for unused parameters: * that are annotated with ``++@javax.enterprise.event.Observes++`` * in overrides and implementation methods * in interface ``++default++`` methods * in non-private methods that only ``++throw++`` or that have empty bodies * in annotated methods, unless the annotation is ``++@SuppressWarning("unchecked")++`` or ``++@SuppressWarning("rawtypes")++``, in which case the annotation will be ignored * in overridable methods (non-final, or not member of a final class, non-static, non-private), if the parameter is documented with a proper javadoc. ---- @Override void doSomething(int a, int b) { // no issue reported on b compute(a); } public void foo(String s) { // designed to be extended but noop in standard case } protected void bar(String s) { //open-closed principle } public void qix(String s) { throw new UnsupportedOperationException("This method should be implemented in subclasses"); } /** * @param s This string may be use for further computation in overriding classes */ protected void foobar(int a, String s) { // no issue, method is overridable and unused parameter has proper javadoc compute(a); } ---- include::../see.adoc[] ifdef::env-github,rspecator-view[] == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]