您的位置:首页 > 其它

参数验证其实可以更简明一点

2012-07-18 21:10 267 查看
最近在尝试重构一个老系统的代码, 阅读过程中经常发现对方法参数值进行校验的逻辑. 它们看上去会是这样:

if (arg1 == null) {
throw new IllegalArgumentException("...");
}


if (arg2 == null) {


arg2 = new ....;

}


invoke(arg1,arg2);

if (arg3 <= 0 || arg3 > 10 ) {

throw new IllegalArgumentException("...");
}


...

[/code]
上面的写法其实问题不大, 但参数一多, 十多行都是, 我就有点看不下去了, 难道不能再简单明了一点吗?( 好吧, 我的代码洁癖又犯了:( )

其实可以写成这样的:

invoke(get(arg1).orComplain("..."),
get(arg2).orDefault(new ...));

check(arg3).greaterThan(0).lessThanOrEqual(10).orComplain();

[/code]
嗯, 要是写成这样我就觉得舒坦了, 基于这个思路, 随手写了个实现, 取名叫Guards, 感兴趣的可以点击这里 查看更多范例.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐