Java中的可选参数
如果repeat是“false”,那么我就不想再使用repeat和repeatMode了?方法可以忽略这些参数而不是重载吗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
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列表