Java List调用add方法时显示空指针错误
定义:privateList<Map<String,Object>>muldata;-------------------------------------------...
定义:
private List<Map<String, Object>> muldata;
-----------------------------------------------------------------
使用
//也试过Map<String,Object> map=new HashMap<>();Map<String,Object> map=new HashMap<String,Object>();但是都报错
Map<String,Object> map=new ArrayMap<>();
map.put("image",R.drawable.ic_launcher);
map.put("text", "测试文本:");
muldata.add(map);
---------------------------------------------------------------
报错:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.listview/com.example.listview.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference
为什么是空指针? 展开
private List<Map<String, Object>> muldata;
-----------------------------------------------------------------
使用
//也试过Map<String,Object> map=new HashMap<>();Map<String,Object> map=new HashMap<String,Object>();但是都报错
Map<String,Object> map=new ArrayMap<>();
map.put("image",R.drawable.ic_launcher);
map.put("text", "测试文本:");
muldata.add(map);
---------------------------------------------------------------
报错:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.listview/com.example.listview.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.add(java.lang.Object)' on a null object reference
为什么是空指针? 展开
展开全部
你的 muldata这个对象是什么? 你只是new 了一个map对象,并没有new list对象,所以list.add()自然就报错了
private List<Map<String,Object>> muldata;
muldata = new ArrayList<Map<String,Object>>();
Map<String,Object> map=new HashMap<>();
map.put("image",R.drawable.ic_launcher);
map.put("text", "测试文本:");
muldata.add(map);
这样再试试,话说你这好像是Android的简单适配器吧? java 基础需要提高,否则你Android学起来非常的累。
展开全部
java中的List属于集合。可以添加任何对象。你所说的空指针应该是你添加的时候,List集合没有实例化吧。Java中当操作一个空对象(不存在或者已经释放的对象)就会抛出空指针错误,提示你操作了一个不存在的对象,给你一个例子:
List al = new ArrayList();
//使用add()方法添加元素
al.add("a");
al.add("b");
al.add("c");
al.add("d");
List al = new ArrayList();
//使用add()方法添加元素
al.add("a");
al.add("b");
al.add("c");
al.add("d");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private List<Map<String, Object>> muldata;你要private List<Map<String, Object>> muldata=new ArrayList<Map<String, Object>>;才可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询