明确地将类型放入菱形运算符与让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之前,前者是必需的。 现在使用类型推理 ,后者是首选。