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


127

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

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

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

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

Answers:


158

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

一些IDE(例如IntelliJ)也使用此功能。

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


1
这是一个Intellij屏幕截图。
Michael K'2

只是出于个人说明的目的-IntelliJ生成带有这种表示法的Java源文件iaw,包含非法Java内容的源文件???还是这仅仅是源代码的视图,保存的文件是正确的?
2011年

5
@Andreas_D:这只是一个视图。磁盘上的文件正常。
openCage 2011年

6
实际上,代字号是灰色的(表示它是不同的),如果单击它,它将展开为完整的定义。
yshavit

1
可以在“编辑/常规/代码折叠”的intelij设置中禁用此功能。
Ocie Mitchell


9

在IntelliJ IDEA中,~此处:

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.