ArrayList<Object> parameters = new ArrayList<Object>();
HashMap<String, String> parameter = new HashMap<String, String>();
parameter.put("key", "value");
parameters.add(parameter);
parameters.add((String) "additionalData"); //this line is here for a reason
destinationFunction(parameters);
....
destinationFunction(ArrayList<Object> data){
HashMap<String, String> imported = (HashMap<String, String>) data.get(0);
String value = imported.get("key");
}
我如何实现这一目标?当我尝试我收到没有错误,直到像destinationFunction的2,我收到空指针异常
答案 0 :(得分:1)
ArrayList<Object> parameters = new ArrayList<Object>();
将此行与您要存储在数组列表中的内容重新对齐 就像你想存储哈希映射然后创建类型哈希映射的arraylist
ArrayList<HashMap<String, String>> parameters = new ArrayList<HashMap<String, String>>();
希望这会对你有所帮助
答案 1 :(得分:0)
使用hashmap的数组列表
ArrayList<HashMap<String, String>>()
答案 2 :(得分:0)
尝试放置ArrayList<HashMap<String, String>>
而不是ArrayList<Object>
创建 HashMap 并添加到 ArrayList。 例如: -
ArrayList<HashMap<String, String>> list = new ArrayList<>();
HashMap<String, String> map = new HashMap<>();
map.put("KEY", "VALUE");
list.add(map); //Add the map into list
答案 3 :(得分:0)
您没有指定存储在arrayList中的类型。但是,您在destinationFunction
中假设此列表仅包含HashMap<String, String>
个元素。除了可怕的代码风格,在java中写这样也没关系。但是当你在arrayList中放入String
类型的元素时,你犯了一个错误,它在destinationFunction
中打破了你的假设。
P.S。尝试编写更多类型安全的代码,并避免使用Object
类型参数的泛型类型。
答案 4 :(得分:0)
备用解决方案将使用JsonObject
和JsonArrays
。
它们非常适合这种情景&#34; (使用String,Integer等组合List和Map)。
它们也可能对复杂对象有用(例如使用图像),但实现起来会更难实现。在这种情况下,请参阅java_serialization
在您的情况下,使用JSONArray
而不是ArrayList
和JsonObject
代替HashMap
。