有多个可选参数

375*_*tor 3 java parameters methods optional-parameters optional

我试图在我的方法中有可选参数.我找到了bolean ...测试,它的确有效.但每当我尝试使用秒级时,它都不起作用.

是否有可能放两个或更多(相同类型,例如:2个选项布尔)

代码:我现在拥有的:

public void addJButton(boolean... yo){}
Run Code Online (Sandbox Code Playgroud)

我想要的是:

public void addJButton(boolean... yo, boolean... yo2){}
Run Code Online (Sandbox Code Playgroud)

Bat*_*eba 6

Java不支持函数中的可选参数.

相反,为函数提供一个重载,如下所示:

void myFunction(boolean parameter)
{
    /*ToDo - code here*/    
}

void myFunction()
{
    myFunction(true/*i.e. call the overload with a default to true*/);
}
Run Code Online (Sandbox Code Playgroud)

当然,可以通过这种方式默认多个参数,并且可以有多个重载来支持不同的默认方案.

  • var-args通常被认为是可选参数,因此Java**支持它们.但它们仅限于每个方法一个var-arg参数,它们必须是最后一个参数. (2认同)

pie*_*t.t 5

至于varargs-notation(boolean...):varargs-parameter总是必须是最后一个,所以你只能拥有其中一个.

您可以考虑传递null省略的参数,或者您可以尝试像Bathseba建议的某种方法重载.

在进行重载时,你必须记住,没有命名参数,所以只有poosition和type可以定义传递哪个参数,哪个被省略!