Given, I know that <T> or <T, V extends Number> is the formal type parameter section. This is a declaration of the formal type parameter T ( type variables ). A type variable is an unqualified identifier used as a type in class, interface, static and non-static methods, and constructor bodies.
But I don't understand what means TypeParameter: {TypeParameterModifier} Identifier [TypeBound] in the documentation.
What does mean {}? Optional arguments?
What does mean []?
Where {} and [] in <T, V extends Number> ?
https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.4
TypeParameter:
{TypeParameterModifier} Identifier [TypeBound]
TypeParameterModifier:
Annotation
TypeBound:
extends TypeVariable
extends ClassOrInterfaceType {AdditionalBound}
AdditionalBound:
& InterfaceType
< >around the list and any commas in it are defined in 8.1.2.