Ответ 1
Это просто сокращение для "так же, как в объявлении".
Некоторые IDE, например IntelliJ, тоже используют это.
Файлы на диске не имеют этой записи, которая является только уплотнением в графическом интерфейсе IDE.
Я читал некоторые примеры JMockit и нашел этот код:
final List<OrderItem> actualItems = new ArrayList<~>();
Что означает тильда в общем идентификаторе? Я знаю, что это унарный побитовый оператор NOT, но здесь я не вижу операнда.
Кроме того, я попытался скомпилировать его и получил сообщение об ошибке. Я что-то пропустил?
Это просто сокращение для "так же, как в объявлении".
Некоторые IDE, например IntelliJ, тоже используют это.
Файлы на диске не имеют этой записи, которая является только уплотнением в графическом интерфейсе IDE.
Если бы не было тильды, я бы сказал, что код уже был Java 7. Java 7 позволяет алмазному оператору, так что это/будет законным Код Java:
Map<String, List<String>> map = new HashMap<>();
(но - нет тильды с этим синтаксисом)
В IntelliJ IDEA ~
здесь:
Set<String> associations = new LinkedHashSet<~>();
означает String
, что совпадает с декларацией с левой стороны.
Я думаю, что это сокращение означает любой тип, в данном случае OrderItem.