Що означає нахил у кутових дужках при створенні загального класу Java?


127

Я читав кілька прикладів JMockit і знайшов цей код:

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

Що означає тильда в загальному ідентифікаторі? Я знаю, що це одинарний бітовий НЕ оператор, але я не бачу тут операнда.

Також я спробував скласти його і отримав помилку. Я просто щось пропускаю?

Відповіді:


158

Це лише скорочення для "те саме, що і в декларації".

Деякі IDE, наприклад IntelliJ, також використовують це.

Файли на диску не мають цього позначення, що є лише ущільненням IDI GUI.


1
Це був скріншот Intellij.
Майкл К

Тільки для особистого уточнення - IntelliJ виробляє вихідні файли Java з цим позначенням, iaw, вихідні файли з незаконним вмістом Java ??? Або це лише перегляд джерела і збережений файл правильний?
Андреас Долк

5
@Andreas_D: Це просто перегляд. Файли на диску в порядку.
openCage

6
І насправді тильда сіра (щоб вказати, що вона різна), і якщо натиснути на неї, вона розшириться до повного визначення.
yshavit

1
Це можна відключити в налаштуваннях intelij для редактора / загальних / складання коду.
Очі Мітчелл


9

У IntelliJ IDEA ~:

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

означає String, що те саме, що в декларації з лівого боку.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.