喵宅苑 MewoGarden × 技术宅社区II | Z站 Z Station 来喵宅苑,有可爱的男孩子

正文

JAVA/Android中关于集合对象的清空、赋值的小tip(个人心得)

作者:wugy315
[i=s] 本帖最后由 wugy315 于 2016-8-24 13:43 编辑 写一个Android项目时遇到的问题。 在当前Activity类中声明了一个packageName集合【List<String> packageName = null;】, 而后在onCreat方法中调用该集合对象进行重新赋值【packageName = new ArrayList<String>()】。 同时,在onCreat中设置button监听,当某个button按下后,对当前集合对象添加元素。 而后,在另一个方法中,当packageName集合判断不为空时,执行相关操作并清空该集合对象中的元素。 此处,我清空集合使用的是packageName = null语句,给packageName赋值为空。 这样做乍一看是没有问题的。然而实际上,此时的packageName已经不是之前的ArrayList对象了,而是空对象(null)。 因此。当我再次点击Button时,会报nullPointerException。空指针异常。为什么呢?因为当前对象已经改变了,无法进行元素添加。 所以,当清空集合对象中的元素时,正确的做法是调用clear方法,即packageName.clear()。 只有这样做,才能使得对象不产生变化,当下一次点击button时,还能正常添加元素。 以上。 2016.08.24 ----------------------------- 补充:当packageName = new ArrayList<String>()时,即便集合中无元素,packageName != null。

回复

九命怪猫

作者:wugy315
九命怪猫 发表于 2016-8-24 14:47 会编程,好厉害的感觉 话说如果新建定义一个值,赋予空值,那是之后就给它运算之类,还是处于空值吗? ...
如果你的意思是声明一个对象然后给它赋值为空的话。那它就是空值,会报空指针异常。不过这个报错的前提是你的运算中有需要用到这个集合中的元素(这要求集合不能为空)
查看回复

好厉害的感觉

作者:九命怪猫
会编程,好厉害的感觉:77: 话说如果新建定义一个值,赋予空值,那是之后就给它运算之类,还是处于空值吗?而且报错吗 其实我完全不会,没接触过Android,只是知道一点点as的
查看回复
上一页
下一页
0%
站点地图友情链接:
喵宅苑
喵空间社区程序
喵宅苑 静态版
宅喵RPG地图编辑器
络合兔
喵宅苑预览版
Lanzainc
技术宅
小五四博客
莉可POI
Mithril.js
枫の主题社
Project1
午后少年
机智库
七濑胡桃
xiuno
幻想の日常
魂研社
Nothentai
0xffff
欲望之花
泽泽社长
淀粉月刊
HAYOU
红客联盟
异次元
轻之国度
神奇宝贝新生代
游戏狗
口袋双子星
我的世界论坛
梦次元
动漫东东
动漫国际
精艺论坛
78动漫
吐槽弹幕网
漫客栈
nexmoe