这是关于实例化ADT实现的语法的一般性问题。
所以我创建了一个实现Queue接口的类调用Airline,我需要一个到达队列的实例化,例如,基于航空公司类型
之间有什么区别
private Queue<Airline> queue = new Queue<>();
和
private Queue<Airline> queue = new Queue<Airline>();
答案 0 :(得分:0)
private Queue<Airline> queue = new Queue<Airline>();
以上是自Java 5发布以来必须指定泛型类型的方式。您有Queue
泛型类型Airline
,因此实例化它因此(在右侧)和声明它(在左侧)。
然而,Java 7引入了diamond operator,它允许实例化的泛型类型被声明<声明< / EM>:
private Queue<Airline> queue = new Queue<>();
所以在这个例子中,编译器推断实例化的类型应该是声明中的Queue<Airline>
,并将其视为这样。
正如上面的评论所说,差异纯粹是语法糖,所以纯粹是编译。对于这两种情况,编译的字节码和运行时行为都是相同的。