shi*_*kou 1 java generics types
我想知道调用具有如下签名的静态方法的正确方法是什么:
public static <T1, T2> Map<T1, Set<T2>> aggregate(List<Map<String, Object>> list,
String colK, String colV) {
...
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我很想这样称呼它:
Map<String, Set<Integer>> map = aggregate<String, Integer>(lData, "id", "ref");
Run Code Online (Sandbox Code Playgroud)
但它没有编译,除非我将其更改为:
Map<String, Set<Integer>> map = aggregate(lData, "id", "ref");
Run Code Online (Sandbox Code Playgroud)
我只是想知道为什么它不需要右侧的提示。相反给了我编译错误。它表示在右侧的提示后需要一个分号。第二种方法是调用该方法的正确方法吗?有人可以解释一下吗?
如图所示,调用该方法的方式是:
ClassName.<String, Integer>aggregate(lData, "id", "ref");
Run Code Online (Sandbox Code Playgroud)
其中ClassName是包含该方法的类的名称。