Que signifie un tilde dans les supports d'angle lors de la création d'une classe générique Java?

StackOverflow https://stackoverflow.com/questions/4887876

Question

Je lisais quelques exemples de 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 unary Bitwise Not, mais je ne vois pas d'opérande ici.

De plus, j'ai essayé de le compiler et j'ai eu une erreur. Est-ce que je manque quelque chose?

Était-ce utile?

La solution

C'est juste un raccourci pour "la même chose que dans la déclaration".

Certains ides, par exemple Intellij utilisent cela aussi.

Les fichiers sur disque n'ont pas cette notation, qui n'est qu'un compactage dans l'interface graphique IDE.

Autres conseils

S'il n'y avait pas de tilde, je dirais que le code était déjà Java 7. Java 7 permet l'opérateur de diamant C'est donc / sera le 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<~>();

moyens String, ce qui est le même que dans la déclaration du côté gauche.

Je pense que c'est un raccourci qui signifie quel que soit le type, dans ce cas Commandant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top