问题

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

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

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

此外,我尝试编译它并得到一个错误。我只是错过了一些东西吗?


#1 热门回答(123 赞)

这只是"与宣言相同"的简写。

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

磁盘上的文件没有这种表示法,这只是IDE GUI中的压缩。


#2 热门回答(13 赞)

如果没有代字号,我会说,代码已经是Java 7.Java 7 allows the diamond operator所以这是/将是合法的Java代码:

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

(但是 - 没有这种语法的代号)


#3 热门回答(7 赞)

在IntelliJ IDEA中,~

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

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


原文链接