不同类型的堆栈声明之间的区别

时间:2018-12-13 09:59:09

标签: java

我是Java新手,想知道两者之间的区别

Stack<Integer>st=new Stack<Integer>();

Stack<Integer>st=new Stack<>();

我知道多态性,但并不完全知道上述说法有何不同。

2 个答案:

答案 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 +