泛型语法的名称是什么:"X.<String,String> method()"

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)

aio*_*obe 6

我认为语法没有特定的名称.我已经回顾了JLS,它只是将其称为"对泛型方法的调用".

在你的情况下,可以将其缩小为"调用非静态泛型方法".

如果您指的是呼叫端存在类型参数这一事实,您只需说" 使用显式类型参数调用泛型方法".

举一个JLS中提到的(有点)的例子

在泛型方法(第8.4.4节)的情况下,确定方法是否适用将要求确定实际类型参数.可以显式或隐式传递实际类型参数.如果它们是隐式传递的,则必须从参数表达式的类型推断出它们(第15.12.2.7节).