2011-02-03 18 views
95

Stavo leggendo attraverso alcuni esempi JMockit e ho trovato questo codice:Cosa significa questa tilde?

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

Cosa la tilde nel identificatore generico significa? So che si tratta dell'operatore bitary bit unary, ma non vedo un operando qui.

Inoltre, ho provato a compilarlo e ho ricevuto un errore. Mi manca qualcosa?

risposta

116

È solo una scorciatoia per "come nella dichiarazione". Alcuni IDE, ad es. Intellij usa anche questo.

I file sul disco non hanno questa notazione, che è solo una compattazione nella GUI IDE.

+1

Era uno screenshot di Intellij. –

+0

Solo per chiarimenti personali - IntelliJ produce file sorgente Java con * questa * notazione, iaw, file sorgente con contenuto Java illegale ??? O è solo la * vista * della sorgente e il file salvato è corretto? –

+5

@Andreas_D: è solo una vista. I file sul disco sono ok. – openCage

2

Penso che stenografia significhi qualunque sia il tipo, in questo caso OrderItem.

13

Se non ci fosse una tilde, direi, il codice è stato già Java 7. Java 7 allows the diamond operator quindi questo è/sarà il codice Java legale:

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

(ma - senza tilde con questa sintassi)

5

in IntelliJ IDEA, il ~ qui:

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

mezzi String, che è la stessa come nella dichiarazione sul lato sinistro.

Problemi correlati