Java中的可选参数

Java中的可选参数,java,parameters,optional-parameters,Java,Parameters,Optional Parameters,如果repeat是“false”,那么我就不想再使用repeat和repeatMode了?方法可以忽略这些参数而不是重载吗 void task(String title,boolean repeat, String repeatMode){ } 我想你发现了一些不同的东西:过载。这是指有两个或多个方法具有相同的名称和返回类型,但参数不同。然后,您可以: void task(String title){ // do something } void task(String title, r

如果repeat是“false”,那么我就不想再使用repeat和repeatMode了?方法可以忽略这些参数而不是重载吗

void task(String title,boolean repeat, String repeatMode){

}

我想你发现了一些不同的东西:过载。这是指有两个或多个方法具有相同的名称和返回类型,但参数不同。然后,您可以:

void task(String title){
 // do something
}

void task(String title, repeatMode){
 // do something and repeat in some monner
}

当你知道
repeat
是否正确时

if(repeat){
   task(title);
}else{
   task(title, repeatMode);
}

我相信类似这样的东西应该是代码的结构,基于您提出的其他问题:

void someMethodThatCallsTheOtherMethods() {
  boolean repeat = true; //or false, whatever it should be
  String title = "SomeTitle";
  String repeatMode = "SomeValue";

  if(repeat) {
    task(title, repeatMode);
  } else {
    task(title);
  }
}

void task(String title) {
  //Do something with title alone
}

void task(String title, String repeatMode) {
  //Do something with title and repeatMode
}

在实际的方法调用之前,应该检查用于方法的参数。在方法调用过程中,您无法确定这一点,因此在方法调用之前,请使用逻辑分支来确定这一点。

如果param“repeat”为“false”,有没有办法,那么我不再需要“repeat”和“repeatMode”?我希望我的方法忽略这些方法重载:
void任务(字符串标题){task(title,false,null);}
谢谢你的回答。当发现false时,方法可以忽略这些参数而不是重载吗?当然,方法体不必使用它所有可用的参数。我回答了你的问题了吗?但是参数repeatMode仍然是由方法选择的,对吗?我可以在params列表中执行if条件,而不是在方法中执行它吗?所以,若它是假的,那个么方法就不需要额外的无用信息param@Meghana这种逻辑应该在方法调用之前处理,而不是由方法本身处理。在调用方法之前,您需要在代码中检查要调用的方法(使用多个参数或很少的参数)。否@Meghana,在Java中,您不能有if-in-parameters列表