我通读了一些 JMockit 示例,发现了以下代码:
final List<OrderItem> actualItems = new ArrayList<~>();
通用标识符中的波浪是什么意思?我知道它是一元位 NOT 操作符,但是我在这里没有看到操作数。
还有,我试着编译了一下,结果出错了,我是不是漏掉了什么?
我认为这是表示不管是什么类型的速记,在这种情况下是 OrderItem。
它只是“与声明中的相同”的简写。
一些 IDE,例如 IntelliJ 也使用这个。
磁盘上的文件没有这种表示法,这只是 IDE GUI 中的一种压缩。
如果没有波浪,我会说,代码已经是 Java7了。因此这是/将是合法的 Java 代码:
Map<String, List<String>> map = new HashMap<>();
(但没有这种语法的波浪线)
在 IntelliJ IDEA 中,这里的 ~:
~
Set<String> associations = new LinkedHashSet<~>();
意味着 String,与左边的声明中的相同。
String