这种Java语法在参数化方面看起来是什么意思?

时间:2012-10-03 22:39:47

标签: java generics

以下是我正在查看的代码(使用Google的ImmutableMap)

ImmutableMap.<String,String>of();

这是什么意思?做什么意义

Class.<GenericType>methodName()?

2 个答案:

答案 0 :(得分:5)

ImmutableMap是一个包含两个类型参数KV的泛型类。此语法给出了两个参数的具体值,在这种情况下都是String

因此,上面的内容会返回StringString的空地图。

请参阅JLS 15.2,其中包括方法调用

MethodInvocation:
     TypeName . NonWildTypeArguments Identifier ( ArgumentListopt )

此处类型参数为StringString

答案 1 :(得分:3)

当类型推断不起作用时,它用于指定泛型类型,例如:

Map<String, String> m = ImmutableMap.of();
Map<String, String> m2 = ImmutableMap.<String, String>builder().build();

它参数化方法返回值的泛型类型。