减少恼人的NullPointerException

本文探讨了在Java编程中如何避免NullPointerException的问题,通过示例说明了在处理字符串等对象时,应先检查其是否为null,以确保程序稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的机会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值