Quando si chiama put
sulla mappa di tipo Map <Integer,String>
, si otterrà la stringa restituita. Quindi, quando si esegue questa operazione:
new HashMap<Integer,String>().put(songID, songList.get(i).name);
verrà restituito un String
e quando si tenta di assegnarlo a una mappa
Map<Integer,String> map
compilatore genera un errore,
Type mismatch: cannot convert from String to Map
Ecco la firma del modulo di metodo put javadocs:
public V put(K key,
V value)
è necessario abbattere il questo complesso affermazione problematica:
Map<Integer,String> map = new HashMap<Integer,String>().put(songID, songList.get(i).name);
a qualcosa di simile:
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(songID, songList.get(i).name);
fonte
2013-08-24 03:55:42
grazie per aver risolto il problema e averlo spiegato passo dopo passo. Sono stato confuso con i due passaggi inizialmente quando l'ho visto su un'altra domanda. –
È anche possibile sfruttare classi interne anonime quando è necessario. Ma ho sentito che non tutti sono a loro agio. – dans3itz