
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.
46 lines
765 B
Plaintext
46 lines
765 B
Plaintext
== Why is this an issue?
|
|
|
|
There is no need to declare a type parameter when naming a type constraint is not required. Using wildcards makes it easier to read.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,java]
|
|
----
|
|
<T extends MyClass> void foo(List<T> list) { // Noncompliant, T is used only once
|
|
for (MyClass myObj : list) {
|
|
doSomething(myObj);
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,java]
|
|
----
|
|
void foo(List<? extends MyClass> list) {
|
|
for (MyClass myObj : list) {
|
|
doSomething(myObj);
|
|
}
|
|
}
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Remove this type parameter and use a wildcard instead
|
|
|
|
|
|
=== Highlighting
|
|
|
|
Type parameter declaration
|
|
|
|
|
|
endif::env-github,rspecator-view[]
|