Chr*_*her 4 java generics syntax
有时需要这种(相对奇怪的外观)语法来避免类型不匹配.但实际上这个语法的名称是什么?
Google Guava的使用示例(r07):
ImmutableMap定义了一个方法
public static <K, V> Builder<K, V> builder()
Run Code Online (Sandbox Code Playgroud)
它可以像这样使用:
ImmutableMap<String, String> map =
ImmutableMap.<String, String>builder().put("a", "A").build();
Run Code Online (Sandbox Code Playgroud)
这是内联版本的方式:
Builder<String, String> builder = ImmutableMap.builder();
ImmutableMap<String, String> map = builder.put("a", "A").build();
Run Code Online (Sandbox Code Playgroud)
我认为语法没有特定的名称.我已经回顾了JLS,它只是将其称为"对泛型方法的调用".
在你的情况下,可以将其缩小为"调用非静态泛型方法".
如果您指的是呼叫端存在类型参数这一事实,您只需说" 使用显式类型参数调用泛型方法".
举一个JLS中提到的(有点)的例子
在泛型方法(第8.4.4节)的情况下,确定方法是否适用将要求确定实际类型参数.可以显式或隐式传递实际类型参数.如果它们是隐式传递的,则必须从参数表达式的类型推断出它们(第15.12.2.7节).