2013-09-24 14 views
6

Questo è uno strano errore che ottengo oggi quando tento di implementare una mappa come di seguito.Il tipo HashMap non è generico; non può essere parametrizzato con argomenti <String, Integer>

Map<String, Integer> cache = new HashMap<String, Integer>(); 

Sto usando JDK 1.7 e non so perché questo errore è venuta e cambiare la linea di cui sopra con l'aggiunta di fusione rimuove l'errore. Ho esaminato i post correlati in StackOverflow prima di pubblicare questa domanda sembra essere un problema strano.

Map<String, Integer> cache = (Map<String, Integer>) new HashMap(); 
+10

Sei sicuro che sia 'Map' che' HashMap' provengono dal pacchetto 'java.util' nel tuo codice? –

+0

@Shane - Qual è l'errore? Stai usando un IDE come Eclipse? –

+3

Stai dichiarando la tua classe 'HashMap' non generica da qualche parte? Si prega di fornire un programma breve ma * completo * che dimostri il problema. –

risposta

20

check in realtà si sta utilizzando java.util.HashMap e java.util.Map nei tuoi importazioni.

2

Sono sicuro che si sta importando il HashMap errato. Devi usare i pacchetti java.util per il codice che hai presentato lì.

Non possiamo aiutarti ulteriormente senza visualizzare le istruzioni di importazione.

-1

Ho fatto qualcosa di veramente stupido per ottenere questo errore. Potresti controllare. Ho chiamato lol la mia classe "HashMap". Potresti controllare quello

+0

lol stesso qui hehe –

4

Ho passato anche attraverso lo stesso errore, ma è stato risolto semplicemente modificando alcune proprietà del progetto:

  • pulsante destro del mouse sul progetto
  • Cliccare sulla Properties
  • Selezionare Java Build Path da destra pannello laterale -hand
  • Selezionare Order and Export scheda
  • Clicca sulla tua JRE System Library or JDK Library
  • Cliccare sul pulsante Up e spostarlo in prima posizione
  • Clicca Ok
  • Pulire & costruire il vostro progetto.

Ripetere questo per tutti gli altri progetti dipendenti, se si dispone di dipendenze.

Ha risolto il problema perché in precedenza i file Java stavano raccogliendo altre librerie e pacchetti non dal pacchetto JRE in quanto era stato ordinato con l'ultima priorità.

+1

grazie mi ha aiutato molto – user1

0

Se nessuna delle soluzioni di cui sopra funziona, l'unico motivo possibile per cui si sta verificando questo errore è perché si potrebbe aver chiamato il nome della classe simile a una classe già esistente che è in libreria di lang o util o.

Problemi correlati