2011-01-08 5 views
30

En C#Instantiate diccionario <T, U> en el error de Java

Dictionary<String, String> dictionary = new Dictionary<String, String>(); 

En Java, esta errores con

no puede crear una instancia del tipo Diccionario

Qué podría estar mal?

En mi código Esto sigue con

dictionary.put("vZip", jsonUdeals.getString("vZip")); 

Sé que esto suena demasiado trivial. ¡Pero estoy perdido!
Si el diccionario no lo hace (que sospecho fuertemente por ahora), entonces qué estructura de datos usar.

+8

Primera regla de programación Java: si tiene problemas con una clase o método específico en la API estándar, lea el documento API antes de hacer nada más. –

+1

gracias amigo. En mi humilde opinión, eso también vale C#. :) De hecho, lo he investigado. Es solo que pasé por alto la palabra abstracto en la definición. C# también tiene Dictionary que no es en absoluto abstracto. Además, estoy familiarizado con el Eclipse IDE también – naveen

Respuesta

67

Dictionary es una clase abstracta en Java. También es obsoleto; en su lugar, debe usar la interfaz Map; algo así como:

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

Tenga en cuenta que HashMap<K,V> es una clase concreta, pero estamos asignando a una referencia Map<K,V>, que es una interfaz. Este es el estilo recomendado en Java, porque le permite cambiar HashMap por ej. Hashtable en una etapa posterior, sin tener que cambiar todo.

+0

incursión en Java desde C# y me gusta lo que veo :) – naveen

+16

@naveen: Muy pronto se desilusionará, por ejemplo. ¡qué basura tienen los genéricos de Java, y la falta de sobrecarga del operador, etc. ...! –

+0

Leí mucho a Jon Skeet y sé que :) Aunque me gustan más las Eclipse IDE toneladas que Visual Studio. refactorizar es otro nivel en total – naveen

3

Utilice un HashMap de la siguiente manera:

Map<String, String> dictionary = new HashMap<String, String>(); 
0

diccionario es una clase de legado. Lo mismo se puede lograr con hashmap o concurrentHashMap (si se requiere sincronización Java 8)

Cuestiones relacionadas