Java 集合创建的构造函数端类型的用途是什么?

What is purpose of type on the constructor side of Java collection creation?

在 Java 集合声明 + 实例化的右侧/构造函数端重新指定类型的目的是什么?

例如,

List<MyClass> a = new ArrayList<MyClass>();

不同/更好/更差
List<MyClass> a = new ArrayList<>();

我的理解是第二种形式在 Java 7 中合法,但我仍然在 Java 7 和 8 中看到很多使用第一种形式的示例。

并没有更糟或不同。是一样的。

编译器引入的一种新的简单方法,可以减少定义类型的人工工作量。