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