有时需要这种(相对奇怪的外观)语法来避免类型不匹配。但实际上这个语法的名称是什么?
来自Google Guava的使用示例(r07):
ImmutableMap定义了一种方法
public static <K, V> Builder<K, V> builder()
可以像这样使用:
ImmutableMap<String, String> map =
ImmutableMap.<String, String>builder().put("a", "A").build();
顺便说一下版本的内容:
Builder<String, String> builder = ImmutableMap.builder();
ImmutableMap<String, String> map = builder.put("a", "A").build();
答案 0 :(得分:6)
我认为语法没有特定的名称。我已经查看了JLS,它只是提到“对通用方法的调用”。
在你的情况下,可以将其缩小为“调用非静态泛型方法”。
如果您指的是呼叫方存在类型参数这一事实,您只需说“使用显式类型参数调用泛型方法 ”。
举例说明JLS中提到的(某种)
在泛型方法(第8.4.4节)的情况下,确定方法是否适用将要求确定实际的类型参数。可以显式或隐式传递实际类型参数。如果它们是隐式传递的,则必须从参数表达式的类型推断出它们(§15.12.2.7)。
答案 1 :(得分:3)
如果你所说的语法是尖括号,那么它们被称为TYPE PARAMETERS。