哪个选项最佳,为什么?

声明

1)List<Employee> employees = Lists.<Employee>newArrayList();

要么

2)List<Employee> employees = Lists.newArrayList();

我正在使用com.google.common.collect.Lists创建列表实例

最佳答案

您可以看一下实现:

public static <E> ArrayList<E> newArrayList() {
  return new ArrayList<E>();
}


因此,返回列表将隐式转换为期望的类型。
仍然有一种情况,就是编译器不够聪明,无法找出所需的类型,那就是将该方法用作另一个方法的参数。
例如:

public void foo( List<Employee> employees ) {/*do something*/}


当您调用foo时,只会编译第一个语法或显式转换:

foo(Lists.<Employee>newArrayList());

关于java - 使用Google Commons创建集合实例的通用与静态声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17537174/

10-15 22:18