[code="java"]//假设这个方法要取到list.get(0)的值进行计算
//那么 这段方法的开头必须是
public void mymethod(List list){
If(list!=null&&list.size()>0){
A a= list.get(0);
If(a!=null){
//进行相关的业务实现
}
}
}
//或者也可以
public void mymethod(List list){
try{
A a= list.get(0);
//进行相关的业务实现
}
catch(Exception e){
//异常处理,但是抛出一个异常 成本应该是比较高的。
}
}
//请问各位看官 有没有更好地办法,控制入口值,
使这个方法变成这样
Public void mymethod(List list){
A a= list.get(0);
//进行相关的业务实现
}
//像null这种判断 我相信各位在java开发中 调用别人的接口时 会经常将取出来的值进行必要的null值判断,或者是在接受参数的时候做null值判断
[/code]
面向切面的方法好像都是通过代理调用的吧,开销也比较大,为了省略一个null值判断而用切面编程,我觉得不可取,当然不判断null值而是catch空指针的做法更加是舍本逐末。
如果你的业务处理逻辑是一个过滤器链的结构,那么在其中一个节点加上一个通用的对null值判断的过滤器可以省下你所面临的麻烦。
如果别人的接口返回的对象可能是null、也可能抛出异常,但接口上一般有说明的。如果接口明确说明可能返回null,那肯定要加null判断。你这时去掉null判断,难道加一个catch 空指针的处理吗?
对方法配置拦截器应该可以实现你想要的功能,不过对方法返回值的处理往往跟你的业务逻辑相关,而且编码人员必须有处理这种情况的意识,如果你把这些处理都屏蔽了,我觉得不是什么好事情。
就是第一种吧我一般都用的第一种,难道还要什么更好的处理方法