面试官:你知道java中的toString方法和强转String有什么区别吗?

今天,小编公司新来的实习生又被开发组长吊了。主要原因是他直接在项目中调用了toString方法。大家先来看下面这段代码。
在这里插入图片描述
这段代码应该是很多初级程序员经常犯的一个错误,表面看着没任何问题。但是大家却忽略了一个问题。在我们写业务代码的过程中,很难保证返回的对象不为null。比如我们的数据库查询。如下代码在这里插入图片描述

当我们查询user表中name 为java 的这条数据时,假设表里面刚好这条数据不存在的话。此时返回的map对象就是null。而在java语言中,null是不可能直接调用方法的。因此,此时jvm 虚拟机就会直接抛出一个我们常见的空指针异常。我们可以来进行测试。在这里插入图片描述

最终的测试结果如我所愿,直接抛出NullPointerException。如果是在我们的实际项目中的,此时我们的程序就直接崩溃了。有时一个小小的错误,很有可能给公司造成重大损失。

那我们在项目中如何来解决这个问题呢,下面来看直接对字符串String类型的强转。在这里插入图片描述
大家可以看到,当直接强转为String的时候,jvm直接输出了null,并不是向上面那样直接抛出空指针异常。

所以平常在作项目的过程中,我一般是禁止我的团队在项目中调用toString方法的。因为在调用这个方法之前存在很多不确定性因素。一旦返回的对象为null,程序就死翘翘了。除非在调用这个方法之前,你能百分百保证这个对象一定不是null。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值