创建 Java 泛型类时,尖括号中的波形符意味着什么?

发布于 2024-10-16 03:16:02 字数 256 浏览 6 评论 0原文

我正在阅读一些 JMockit 示例,发现了这段代码:

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

What does the tilde in the generic recognizermeaning?我知道它是一元按位 NOT 运算符,但我在这里没有看到操作数。

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

I was reading through some JMockit examples and found this code:

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

What does the tilde in the generic identifier mean? I know it's the unary bitwise NOT operator, but I don't see an operand here.

Also, I tried compiling it and got an error. Am I just missing something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

擦肩而过的背影 2024-10-23 03:16:03

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

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

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

It is just a shorthand for "same as in declaration".

Some IDEs, e.g. IntelliJ use this too.

The files on disk do not have this notation, which is only a compaction in the IDE GUI.

初熏 2024-10-23 03:16:03

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

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

但是 - 此语法中没有波形符)

If there wasn't a tilde, I'd say, the code was already Java 7. Java 7 allows the diamond operator so this is/will be legal Java code:

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

(but - no tilde with this syntax)

诠释孤独 2024-10-23 03:16:03

在IntelliJ IDEA中,这里的~

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

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

In IntelliJ IDEA, the ~ here:

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

means String, which is the same as in the declaration on the left side.

此生挚爱伱 2024-10-23 03:16:03

我认为这是表示任何类型的简写,在本例中为 OrderItem

I think that is shorthand to mean whatever the type is, in this case OrderItem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文