== Why is this an issue?

A method or class with too many type parameters has likely aggregated too many responsibilities and should be split.


=== Noncompliant code example

With the default parameter value of 2:

[source,text]
----
<S, T, U, V> void foo() {} // Noncompliant; not really readable
<String, Integer, Object, String>foo(); // especially on invocations
----

