假设我有一个像这样的简单方法来处理两个列表:
public static <B> void foo(List<B> list1, List<B> list2) {
}
假设我想这样称呼它:
foo(ImmutableList.of(), ImmutableList.of(1));
这不会编译,因为javac
它不够聪明,无法弄清楚我正在尝试创建两个整数列表。相反,我必须写:
foo(ImmutableList.<Integer>of(), ImmutableList.of(1));
我应该如何更改声明foo
以允许第一个版本和第二个版本一样工作?