It means you're invoking a generic static method, called of
in the ImmutableMap
class.
It's pretty much the same as you're invoking a static
method, nested in some class:
SomeClass.staticMethod();
For the cases when your method has a type-parameter defined, you can explicitly provide the generic type and this is done like this:
SomeClass.<Type>genericStaticMethod();
And to answer you final question:
What is the difference between ImmutableMap<Class...>
and ImmutableMap.<Class...
?
The first is usually used when creating an instance of a generic class. It's used to define the generic-type on class level, while the second is used to invoke a generic static method that's nested in some class.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…