2011-02-03 23 views
95

que estaba leyendo a través de algunos ejemplos JMockit y encontré este código:¿Qué significa esta tilde?

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

¿Qué significa la tilde en el identificador genérico? Sé que es el operador NOT bit a bit único, pero no veo un operando aquí.

Además, traté de compilarlo y obtuve un error. ¿Me estoy perdiendo algo?

Respuesta

116

Es solo una abreviatura de "igual que en la declaración". Algunos IDEs, p. Intellij usa esto también

Los archivos en el disco no tienen esta notación, que es solo una compactación en la GUI IDE.

+1

Era una captura de pantalla de Intellij. –

+0

Solo para aclaración personal: IntelliJ produce archivos fuente Java con notación * this *, iaw, archivos fuente con contenido ilegal de Java ??? ¿O es solo la * vista * de la fuente y el archivo guardado es correcto? –

+5

@Andreas_D: Es solo una vista. Los archivos en el disco están bien. – openCage

2

Creo que es taquigrafía para significar cualquiera que sea el tipo, en este caso OrderItem.

13

Si no había una tilde, yo diría, el código ya era de Java 7. Java 7 allows the diamond operator por lo que este es/será código legal de Java:

Map<String, List<String>> map = new HashMap<>(); 

(pero - sin tilde con esta sintaxis)

5

en IntelliJ IDEA, el ~ aquí:

Set<String> associations = new LinkedHashSet<~>(); 

significa String, que es el mismo que en la declaración en el lado izquierdo.

Cuestiones relacionadas