申し訳ありませんがタイトルが明確でない場合、私は専門用語ではあまりよくありません。組み込みArrayList <Integer>をローカルで宣言されたArrayList <Integer>に割り当てることができないのはなぜですか?
Iは、2列のArrayListと収集のLinkedHashMap <文字列、リスト<ストリング>>介して別のメソッドに渡される一つの方法から得られた整数のArrayListを有します。私は、受信方法で宣言された空のArrayListに整数のArrayListを設定しようとすると、しかし、それは構文エラーを示しています。「互換性のない型:一覧>が一覧> <整数に変換できない<文字列」。
スターター方法:メソッドを受信
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();
}
}
:
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);
}
}
}
このコードは、私は私が私の実際のコードに希望するものではない文字列に整数のすべてのインスタンスを変更する場合にのみ機能します。それはなぜそうであり、どうすればそれを回避するのですか?
。あなたはキャストする必要があります。 – matt
'readMap.size()'を繰り返し処理しますか?それは地図内に含まれるあなたのリストと同じ長さではありません。 – matt
@matt「あなたはキャストしなければならないだろう」私はタイプセーフではありません。 –