Que signifie ce tilde?
Je lisais quelques exemples JMockit et j'ai trouvé ce code:
final List<OrderItem> actualItems = new ArrayList<~>();
Que signifie le tilde dans l'identifiant générique? Je sais que c'est l'opérateur unaire bitwise NOT, mais je ne vois pas d'opérande ici.
Aussi, j'ai essayé de le compiler et j'ai eu une erreur. Suis-je raté quelque chose?
4 réponses
C'est juste un raccourci pour "même que dans la déclaration".
Certains IDE, par exemple IntelliJ l'utilisent aussi.
Les fichiers sur le disque n'ont pas cette notation, qui est seulement un compactage dans L'interface graphique IDE.
S'il n'y avait pas de tilde, je dirais que le code était déjà Java 7. Java 7 permet à l'opérateur diamond donc c'est / sera un code Java légal:
Map<String, List<String>> map = new HashMap<>();
(mais pas de tilde avec cette syntaxe)
Dans IntelliJ IDEA, le ~
ici:
Set<String> associations = new LinkedHashSet<~>();
Signifie String
, qui est le même que dans la déclaration sur le côté gauche.
Je pense que c'est un raccourci pour signifier quel que soit le type, dans ce cas OrderItem.