java – 点运算符`.`(在泛型参数之前)是什么意思?

我今天看到这个代码:

    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...> and ImmutableMap.<Class... ?

第一个通常在创建泛型类的实例时使用.它用于在类级别定义泛型类型,而第二个用于调用嵌套在某个类中的泛型静态方法.

上一篇:java – 为什么将{a,b,c}传递给方法不起作用?


下一篇:python – 如何指定scikit-learn的朴素贝叶斯的先验概率