这个波浪代表什么意思?

我正在阅读一些JMockit的例子,发现这个代码:

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

generics标识符中的代字号是什么意思? 我知道这是一元运算符,但是在这里我没有看到操作数。

另外,我试着编译它,并得到一个错误。 我只是想念一些东西?

这只是“和申报一样”的简写。 一些IDE,例如Intellij也使用它。

磁盘上的文件没有这种标记,这只是在IDE GUI中的压缩。

如果没有代字号,我会说代码已经是Java 7. Java 7允许钻石运算符,所以这是/将是合法的Java代码:

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

(但是 – 不用这个语法代替)

在IntelliJ IDEA中, ~这里:

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

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

我认为这是速记,意思是任何types,在这种情况下OrderItem