明确地将类型放入菱形运算符与让java弄清楚之间有区别吗?

初始化之间有什么区别:

MyWrapper wrapper = new MyWrapper(); 

vs初始化:

 MyWrapper wrapper = new MyWrapper(); 

是否有人想要使用前者而不是后者? 我看到很多前者; 我不确定是不是因为这是人们习惯的,或者你有理由想这样写。

后者仅在Java 7之后可用。这就是为什么你经常看到前者。 后者是等同的,而且更短。

JDK 7允许在初始化时不重新定义这个“冗余”菱形。

这只是一个较短的语法。

使用JDK <= JDK 6,后者不起作用,您必须使用前者。

这主要是因为虽然Java 7是当前版本,但许多代码仍使用Java 6,后者不支持后者的forms。

从本质上讲,Java 7编译器更擅长推断generics类型。

在Java 7之前,前者是必需的。 现在使用类型推理 ,后者是首选。