什么时候需要指定集合的​​通用类型?

时间:2019-10-29 04:47:15

标签: java generics collections conventions

下面的代码行各进行编译(当然是在单独的方法中):

$("#Datetimepicker").datetimepicker().on('changeDate', function(e) {
  console.log('hey');
});

其中一个受到鼓励吗?这些选项之间的行为是否有差异?

2 个答案:

答案 0 :(得分:2)

这种声明形式对Java最高适用于版本6

List<String> list = new ArrayList<String>();

这种声明形式对Java 7+版本有效

List<String> list = new ArrayList<>();

最后,对于此版本,编译器将生成未经检查的转换警告,但它可以工作:

List<String> list = new ArrayList();

有关完整说明,请参见此link

答案 1 :(得分:2)

<>被称为菱形运算符,它根据引用变量声明确定类型。

Recommended is using diamond operator,因为这样可以避免重复声明或重复声明类型变量,因为从变量声明中可以清楚地看到它,同时允许在未指定的情况下将类型默认为Object类类型。

除了List<String> list = new ArrayList();发出警告或根本不被认为是一种好习惯之外,以上三个条件均有效。

我的想法: List<String> list = new ArrayList();从该角度来看也可能是有效的声明,但是它默认为Object类型的数组列表(Java就是这样)。精确地:

  

如果未指定类型,则默认为“对象类型”