
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
68 lines
1.4 KiB
Plaintext
68 lines
1.4 KiB
Plaintext
== Why is this an issue?
|
|
|
|
There are several reasons for a method not to have a method body:
|
|
|
|
|
|
* It is an unintentional omission, and should be fixed to prevent an unexpected behavior in production.
|
|
* It is not yet, or never will be, supported. In this case an ``++UnsupportedOperationException++`` should be thrown.
|
|
* The method is an intentionally-blank override. In this case a nested comment should explain the reason for the blank override.
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,java]
|
|
----
|
|
public void doSomething() {
|
|
}
|
|
|
|
public void doSomethingElse() {
|
|
}
|
|
----
|
|
|
|
=== Compliant solution
|
|
|
|
[source,java]
|
|
----
|
|
@Override
|
|
public void doSomething() {
|
|
// Do nothing because of X and Y.
|
|
}
|
|
|
|
@Override
|
|
public void doSomethingElse() {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
----
|
|
|
|
=== Exceptions
|
|
|
|
This does not raise an issue in the following cases:
|
|
|
|
* Non-public default (no-argument) constructors
|
|
* Public default (no-argument) constructors when there are other constructors in the class
|
|
* Empty methods in abstract classes
|
|
* Methods annotated with `@org.aspectj.lang.annotation.Pointcut()`
|
|
|
|
|
|
[source,java]
|
|
----
|
|
public abstract class Animal {
|
|
void speak() { // default implementation ignored
|
|
}
|
|
}
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::../message.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|