Что означает эта Тильда?



Я читал некоторые примеры JMockit и нашел этот код:



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


что означает Тильда в универсальном идентификаторе? Я знаю, что это унарный побитовый оператор NOT, но я не вижу здесь операнда.



кроме того, я попытался скомпилировать его и получил ошибку. Я что-то упустил?

323   4  

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, что совпадает с объявлением на левой стороне.

Я думаю, что это стенография, чтобы означать независимо от типа, в этом случае OrderItem.

Comments

    Ничего не найдено.