我是Java新手,想知道两者之间的区别
Stack<Integer>st=new Stack<Integer>();
和
Stack<Integer>st=new Stack<>();
我知道多态性,但并不完全知道上述说法有何不同。
答案 0 :(得分:0)
来自Java Tutorials generics lesson:
在Java SE 7和更高版本中,只要编译器可以确定或推断,可以用一组空的类型参数(
<>
来替换调用通用类的构造函数所需的类型参数。上下文中的类型参数。这对尖括号<>
被非正式地称为菱形。例如,您可以使用以下语句创建Box的实例:
Box<Integer> integerBox = new Box<>();
答案 1 :(得分:0)
这是相同的。从Java 7开始,声明中的那些类型是 多余,因为它们是自动推断的: type-inference-generic-instance-creation
For example, consider the following variable declaration:
Map<String, List<String>> myMap = new HashMap<String, List<String>>();
在Java SE 7中,可以将构造函数的参数化类型替换为一组空的类型参数(<>):
Map<String, List<String>> myMap = new HashMap<>();
但是您仍然可以同时将其用于Java 7 +