2016-04-28 7 views
-2

Nicht ganz sicher, warum ich diesen Fehler für die Put-Methode bekomme. Hilfe wäre willkommen.Die Methode Put ist nicht anwendbar für die Argumente

Dieser Code

HashMap<ArrayList<String>,ArrayList<Integer>> magicshopitems = new HashMap<ArrayList<String>,ArrayList<Integer>>(); 
magicshopitems.put("items", itemlist); 
magicshopitems.put("amount", itemlistamount); 

produziert

The method put(ArrayList<String>, ArrayList<Integer>) in the type HashMap<ArrayList<String>,ArrayList<Integer>> is not applicable for the arguments (String, ArrayList<String>) 
+1

A 'String' ist kein' 'Arraylist . – rgettman

Antwort

1

Sie versuchen, einen String in einem Arraylist zu setzen.

Sie müssen den String zuerst in eine Liste einfügen;

ArrayList<String> list = new ArrayList<String>(); 
list.add("items"); 

magicshopitems.put(list, itemlist); 

Side Hinweis:

Es ist besser Praxis die übergeordneten Interface-Klassen zu verwenden, wenn eine solche Sammlung constrcuting.

Statt:

HashMap<ArrayList<String>,ArrayList<Integer>> magicshopitems = 
    new HashMap<ArrayList<String>,ArrayList<Integer>>(); 

könnten Sie haben:

Map<List<String>, List<Integer>> magicshopitems = 
    new HashMap<List<String>, List<Integer>>(); 
+0

Oder wahrscheinlicher, ändern Sie die Hashmap in 'HashMap >' – Blorgbeard

+0

Danke, das Problem ist jetzt alles aussortiert, schätze die Hilfe. – rhowell

Verwandte Themen