方法中的java可选参数
我想创建一个需要1个参数和1个可选参数的方法,但是我发现如何通过在参数(int ... b)中创建一个可选数组,但这是针对数组的,我想使它只是这个值为空或用户输入它,我可以通过使两个同名的方法,但一个与单个参数,一个与2个参数,但它可以用只有一个方法?
谢谢
不,Java不支持可选参数。 重载的另一种替代方法(对两个参数没有太大意义,但对于更多的参数确实有意义)是使用表示所有参数的构建器类型 - 您可以为构建器提供包含所需参数的构造器,然后每个选项都有一个setter,使得setter自己返回构建器。 因此调用该方法变得如下所示:
foo.doSomething(new ParameterBuilder(10).setBar(2).setBaz(10));
你正在寻找的是默认参数支持。 Java没有这种能力,但它或多或少地模拟了这种能力。
一种简单的方法是使用方法重载。
另一种方法是直接识别特殊情况,然后替换默认值。
以下是Ivo Limmen将这两种方法混合使用的示例:
public void test() {
this.test(null, null);
}
public void test(String p1) {
this.test(null, null);
}
public void test(String p1, String p2) {
if(p1 == null) {
...
} else {
...
}
if(p2 == null) {
...
} else {
...
}
}
我发现一个非常有趣的方法是使用Design Builder模式。 这里有一个例子
这里也有一个有趣的讨论
不,这正是重载的方法
链接地址: http://www.djcxy.com/p/20875.html