Tutto ciò che desidero è utilizzare un insieme concomitante (che sembra non esistere affatto). Java utilizza java.util.concurrent.ConcurrentHashMap<K, Void>
per ottenere questo comportamento. Mi piacerebbe fare qualcosa simile a Scala così ho creato un'istanza della Scala HashMap (o Java ConcurrentHashMap) e ho cercato di aggiungere alcune tuple:come istanziare l'unità in Scala?
val myMap = new HashMap[String, Unit]()
myMap + (("myStringKey", Unit))
Questo, naturalmente, si è schiantato il processo della compilazione come unità è astratto e finale .
Come fare questo lavoro? Devo usare Any
/AnyRef
? Devo assicurarmi che nessuno inserisca alcun valore.
Grazie per l'aiuto
Nota, 'java.util.concurrent.ConcurrentHashMap' è errato. Il tipo 'Void' (nota' V 'maiuscola) può solo accettare il valore 'null', ma [la documentazione per' ConcurrentHashMap'] (http://docs.oracle.com/javase/7/docs/api/java /util/concurrent/ConcurrentHashMap.html) disabilita specificamente le chiavi/valori 'null' nella mappa. Il modo in cui di solito viene implementato è 'ConcurrentHashMap ', usando costante 'Boolean.TRUE' per i valori. (Usando la costante 'Boolean.TRUE' assicurati di non creare una nuova istanza' Boolean' per ogni voce nella mappa.) –
DaoWen
correzione (void -> Void) proceduto, usando 'Boolean.TRUE' è un bel trucco, grazie – petrbel
sei sicuro che dovresti anche usare l'unità? che ne dici di "Opzione" o di un ADT personalizzato (famiglia di classi di case sigillate)? –