我有一个过滤器系统,用户可以在8个参数中进行选择,每个参数可以为null或不为null。在每个路径的末尾,我只需要使用不为null的参数来调用方法。我该怎么做 ?
如果使用此方案,它将非常大……
if (arg1 ==true){
if (args2 == true){
if(arg3 == true) {
do(arg1, arg2, arg3);
}
else{
do(arg1, arg2);
}
}
else {
do(arg1);
}
}
else {
do();
}
答案 0 :(得分:1)
您的代码应该将args与null
而不是true
进行比较。
如果我是你,我会重新考虑设计。传递大量的null并不是编写Java代码的正常方法,这会使API及其实现变得复杂。
如果参数都是相同的类型,则可以使用varargs作为参数。否则,Builder design pattern对于用合理的默认值构建缺少参数的对象可能很有用。