Using a type parameter when you don't have to simply obfuscates the code. Qualifying an inner type with a type parameter will compile, but confuse maintainers. == Noncompliant Code Example ---- T doTheThing(T.Entry type) { // Noncompliant //... } ---- == Compliant Solution ---- T doTheThing(Map.Entry type) { //... } ----