139

我正在阅读一些 JMockit 示例并找到以下代码:

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

通用标识符中的波浪号是什么意思?我知道它是一元按位非运算符,但我在这里看不到操作数。

另外,我尝试编译它并得到一个错误。我只是错过了什么吗?

4

4 回答 4

168

它只是“与声明相同”的简写。

一些 IDE,例如 IntelliJ 也使用它。

磁盘上的文件没有这个符号,它只是 IDE GUI 中的一个压缩。

于 2011-02-03T15:12:48.253 回答
19

如果没有波浪号,我会说,代码已经是 Java 7。Java 7 允许使用菱形运算符,所以这是/将是合法的 Java 代码:

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

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

于 2011-02-03T15:51:39.313 回答
11

在 IntelliJ IDEA 中,~这里:

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

表示String,与左侧声明中的相同。

于 2015-02-19T22:50:14.730 回答
2

我认为这是表示任何类型的简写,在这种情况下是OrderItem

于 2011-02-03T15:12:06.593 回答