我今天看到这个代码:
ImmutableMap<Class<? extends ClientCommand>, CommandProcessorInterface> immutableMap =
ImmutableMap.<Class<? extends ClientCommand>, CommandProcessorInterface>of(...
这个语法是什么意思?
ImmutableMap.< Class .. 我知道仿制药就在课堂名称之后.没有? 有什么区别: ImmutableMap< Class ..和ImmutableMap.< Class ..
解决方法:
这意味着您正在调用一个在ImmutableMap类中调用的泛型静态方法.
它与您调用嵌套在某个类中的静态方法几乎相同:
SomeClass.staticMethod();
对于您的方法定义了类型参数的情况,您可以显式提供泛型类型,这样做:
SomeClass.<Type>genericStaticMethod();
并回答你最后的问题:
What is the difference between
ImmutableMap<Class...>
andImmutableMap.<Class...
?
第一个通常在创建泛型类的实例时使用.它用于在类级别定义泛型类型,而第二个用于调用嵌套在某个类中的泛型静态方法.