以下代码行每次编译(当然,在单独的方法中):
List<String> list = new ArrayList<String>();
List<String> list = new ArrayList<>();
List<String> list = new ArrayList();
其中一项是否比其他项受到鼓励?这些选项之间的行为有什么差异吗?
最佳答案
<>
称为菱形运算符,它根据引用变量声明确定类型。
Recommended is using diamond operator
因为这避免了类型变量的样板或重复声明,因为它从变量声明中清晰可见,同时允许类型在未指定的情况下默认为对象类类型。
以上三个都有效,除了List<String> list = new ArrayList();
发出警告或根本不被视为良好做法。
我的想法: List<String> list = new ArrayList();
从这个角度来看,它也可能是一个有效的声明,但它默认为对象类型的数组列表(Java 就是这样)。准确地说:
if you don't specify a type, it defaults to Object type
关于java - 什么时候需要为集合指定泛型类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58601544/