我今天看到这段代码:
ImmutableMap<Class<? extends ClientCommand>, CommandProcessorInterface> immutableMap =
ImmutableMap.<Class<? extends ClientCommand>, CommandProcessorInterface>of(...
这个语法是什么意思?
ImmutableMap.<Class ..
我知道泛型紧跟在类名之后。没有?
有什么区别:
ImmutableMap<Class..
和 ImmutableMap.<Class..
最佳答案
这意味着您正在调用一个名为 of
的通用静态方法在ImmutableMap
类。
这与调用 static
几乎相同方法,嵌套在某个类中:
SomeClass.staticMethod();
对于您的方法定义了类型参数的情况,您可以显式提供泛型类型,这样做是这样的:
SomeClass.<Type>genericStaticMethod();
然后回答你最后一个问题:
What is the difference between
ImmutableMap<Class...>
andImmutableMap.<Class...
?
第一个通常在创建泛型类的实例时使用。它用于在类级别定义泛型类型,而第二个用于调用嵌套在某个类中的泛型静态方法。
关于java - 点运算符 `.`(在通用参数之前)是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27166610/