今天,小编公司新来的实习生又被开发组长吊了。主要原因是他直接在项目中调用了toString方法。大家先来看下面这段代码。
这段代码应该是很多初级程序员经常犯的一个错误,表面看着没任何问题。但是大家却忽略了一个问题。在我们写业务代码的过程中,很难保证返回的对象不为null。比如我们的数据库查询。如下代码
当我们查询user表中name 为java 的这条数据时,假设表里面刚好这条数据不存在的话。此时返回的map对象就是null。而在java语言中,null是不可能直接调用方法的。因此,此时jvm 虚拟机就会直接抛出一个我们常见的空指针异常。我们可以来进行测试。
最终的测试结果如我所愿,直接抛出NullPointerException。如果是在我们的实际项目中的,此时我们的程序就直接崩溃了。有时一个小小的错误,很有可能给公司造成重大损失。
那我们在项目中如何来解决这个问题呢,下面来看直接对字符串String类型的强转。
大家可以看到,当直接强转为String的时候,jvm直接输出了null,并不是向上面那样直接抛出空指针异常。
所以平常在作项目的过程中,我一般是禁止我的团队在项目中调用toString方法的。因为在调用这个方法之前存在很多不确定性因素。一旦返回的对象为null,程序就死翘翘了。除非在调用这个方法之前,你能百分百保证这个对象一定不是null。