java如不想么每次都判空 if(o !=null) 怎么做?

涉及到对象操作 object.xxxx(),如果对象为null则会抛异常,如果每次都if(o !=null) 代码很丑陋

一种做法是创建对象或者方法返回对象时都new一个对象而不是返回null
不过这样有时也不太好,比如结果为空的时候返回null更合理一点

有更好的建议么 ?

阅读 21.9k
评论
    14 个回答

    在Java的工程实践中,需要经常判断对象是否为null是一个常见都困扰,根据个人经验,我通常不做任何的判断,任其抛出NullPointerException。因为方法或者构造函数中允许参数为null通常并不是一个好的工程设计。或许有人会以为了增加系统的容错性,所以允许null参数来反驳,这也有一定的道理,不过这还是取决于你的类设计。我的经验是,通常要将你所设计的类划分职责,越是倾向于底层逻辑、基础数据操作的类,可以适当的容忍null参数;越是倾向于重要业务逻辑的类,通常不容忍null参数。在处理NullPointerException或者其他RuntimeException的时候,应该有一个统一的错误处理策略。就像Spring中对于Exception的策略一样,所有的方法都抛出RuntimeException。

    多说一句,这个话题其实涉及到如何设计你的系统中的错误处理机制。这个绝对是见仁见智的事情,不会有一个绝对正确的答案。