Sorry, wenn der Titel nicht klar ist, bin ich nicht sehr gut mit Programmiersprache.Warum kann ich einer lokal deklarierten ArrayList <Integer> keine eingebettete ArrayList <Integer> zuweisen?
Ich habe 2 string Arraylisten und eine ganze Zahl Arraylist von einem Verfahren erhalten, das zu einem getrennten Verfahren durch die Sammlung LinkedHashMap < String, List < String >> geben wird. Allerdings, wenn ich versuchen, die ganze Zahl Arraylist in eine leere Arraylist in der Empfangs Methode deklariert zu setzen, es zeigt die Syntaxfehler: „inkompatible Typen: Liste < String> kann nicht auf Liste < Integer> umgewandelt werden“.
Starter Methode:
public static void main(String[] args) {
try{
LinkedHashMap lhm = new LinkedHashMap();
List<String> listEPC = new ArrayList<String>();
List<String> listTimeStamp = new ArrayList<String>();
List<Integer> listAntenna = new ArrayList<Integer>();
String tagID = "EQ5237";
String TimeStampStr = "12:23:22";
int tagAntenna = 2;
listEPC.add(tagID);
listTimeStamp.add(TimeStampStr);
listAntenna.add(tagAntenna);
lhm.put("epcs", listEPC);
lhm.put("timestamps", listTimeStamp);
lhm.put("antennas", listAntenna);
insertData insert = new insertData();
insert.insertData(lhm); //send map with values to new method
}catch(Exception e){
e.printStackTrace();
}
}
Empfangen Methode:
public class insertData {
public void insertData(LinkedHashMap<String, List<String>> readMap) {
List<String> listEPC = new ArrayList<String>();
List<String> listTimeStamp = new ArrayList<String>();
List<Integer> listAntenna = new ArrayList<Integer>();
String EPC = null;
String TimeStamp = null;
Integer Antenna = null;
listEPC = readMap.get("epcs");
listTimeStamp = readMap.get("timestamps");
listAntenna = readMap.get("antennas"); //error message here
for(int i=0; i<readMap.size(); i++){
EPC = listEPC.get(i);
TimeStamp = listTimeStamp.get(i);
Antenna = listAntenna.get(i);
System.out.println("Entry " + i);
System.out.println("Values: " + EPC + TimeStamp + Antenna);
}
}
}
Dieser Code funktioniert nur, wenn ich alle Instanzen von ganzen Zahlen in Strings ändern, das ist nicht das, was ich in meinem eigentlichen Code möchte. Warum ist das so und wie arbeite ich daran?
Weil Ihre LinkedHashMap Liste enthält nicht Liste. Du wirst wirken müssen. –
matt
Möchten Sie über 'readMap.size()' iterieren? Das ist nicht die gleiche Länge wie Ihre Listen in der Karte. – matt
@matt "Du wirst spielen müssen" Klingt für mich nicht typsicher. –