1字符串变量未初始化;
2接口类型的对象没有用具体的类初始化,比如:
List lt;会报错
List lt = new ArrayList();则不会报错了
3当一个对象的值为空时,你没有判断为空的情况。
如果你去操作这个对象就会出现java.lang.NullPointerException
我一般的做法是先判断这个对象是否为空,如下:
if(object!=null){
.......
}
例子
String str1 = someclass.getSomeString();
if(str1.equalsIgnoreCase("YES"))
{
//do something
}
else if(str1.equalsIgnoreCase("NO"))
{
//do something else
}[/code]
这段代码从逻辑上看没有错,但是却有发生NullPointer的隐患,主要在于
String str1 = someclass.getSomeString();
可能导致str1 为null,常见的有
props.getProperty("somekey");
map.get("key");
bean.getName();
等等,这里发生NullPointerException的机会非常大,而且运行情况往往和用户输入的数据有关,所以不容易被发现,常常是开发的时候没问题,一旦送到用户那里去运行了就出问题了。
正确的方法应该是
[code]
String str1 = something;
if("YES".equalsIgnoreCase(str1))
{
//do something
}
else if("NO".equalsIgnoreCase(str1))
{
//do something else
}[/code]
这样就保证了你调用equalsIgnoreCase() 的主体永远也不是null,即使str1等于null,也不会导致程序出错,且从逻辑上讲也是正确的,就大大减少了Exception的机会。
分享到:
相关推荐
参加社会保险单位人员减少申报表(城保减少最新模板).xlsx
chatgpt怎么通过减少token来减少花费.zip
HD声卡减少滚动条!~!HD声卡减少滚动条HD声卡减少滚动条HD声卡减少滚动条
2022中国成人血小板减少症急诊管理专家共识(全文) .pdf
低碳生活每一天第2课时《减少我们的碳排放》说课稿道德与法治.pdf
这项研究调查了电力严重短缺对沙特阿拉伯王国(KSA)首都利雅得市居民... 第二种方法侧重于开发数学模型以补充调查方法,因为该模型可以减少与消费者缺乏评估和评估服务可靠性和质量价值的经验相关的问题复杂性的大小。
TIA博途使用定时器和计数器指令时如何减少背景DB的使用?
Android 帧动画优化实现可减少内存使用,包含原生帧动画的对比
减少危险废物产生量和危害性的措施.pdf
这款插件可以有效的减少模型的面数,先加头文件using OrbCreationExtensions; 再调用函数: GameObjectExtensions.GetSimplifiedMesh(obj,2.5f, false, 1);就可以用了,非常方便,由于我把插件里面多余的东西剔除掉...
基于TIA博途利用SCL语言开发沿指令FC全局库来减少工作存储区的使用
购物车数量增加减少,点击后数量同步增加,带有加号减号
参加基本医疗保险缴费人员增加/减少申报表模板.pdf
这些技术已经针对减少生态足迹的概念。 大型结构(例如建筑群和医院)已经过重新设计和升级; 在不断生产新的电子设备的过程中,许多室内设计已发生了巨大变化,目的是在展示惊人信号处理的同时,彻底改变对“绿色...
面积约束可以减少Register 的使用,进而减少LAB 资源的使用
系统优化总结:修改注册表来减少预读取,减少进度条等待时间,效果是进度条跑一圈就进入登录画面了,开始→运行→regedit启动注册表编辑器,找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager...
减少垃圾倡议书.doc
减少图片的颜色数量,可控制颜色数量,操作方便,解压即可
XP的滚动条减少的方法 注入注册表
TIA博途中如何建立上升沿FB库实现多重调用,从而减少使用背景DB块的数量?