什么是创建一个Java泛型类时,在尖括号中波浪线是什么意思?

问题描述 投票:110回答:4

我是通过一些JMockit例子阅读和发现这样的代码:

final List<OrderItem> actualItems = new ArrayList<~>();

是什么在通用标识波浪线是什么意思?我知道这是一元的按位NOT运算符,但我没有在这里看到一个操作数。

此外,我试图编译它,并得到了一个错误。我只是失去了一些东西?

java generics intellij-idea syntax tilde
4个回答
147
投票

这仅仅是“相同的声明”的简写。

有些IDE,例如的IntelliJ也用这个。

磁盘上的文件没有这个符号,这是只有在IDE GUI压实。


14
投票

如果没有一个波浪线,我会说,代码已经Java 7中Java 7 allows the diamond operator所以这是/将是法律的Java代码:

Map<String, List<String>> map = new HashMap<>();

(但是 - 这个语法没有波浪号)


8
投票

在IntelliJ IDEA的,这里的~

Set<String> associations = new LinkedHashSet<~>();

装置String,这是与在上左侧上的声明。


2
投票

我认为这是速记意味着任何类型的,在这种情况下OrderItem的。

© www.soinside.com 2019 - 2024. All rights reserved.