В Яве нет значений по умолчанию для аргументов методов. То есть так нельзя:
public int method(int a, int b = 1, int c = 2) {
return a + b + c;
} |
public int method(int a, int b = 1, int c = 2) {
return a + b + c;
}
Реализовывать это нужно через жопу перегрузку:
public int method(int a, int b, int c) {
return a + b + c;
}
public int method(int a, int b) {
return method(a, b, 2);
}
public int method(int a) {
return method(a, 1);
} |
public int method(int a, int b, int c) {
return a + b + c;
}
public int method(int a, int b) {
return method(a, b, 2);
}
public int method(int a) {
return method(a, 1);
}
Если подумать, то да, значениям по умолчанию может быть сложно ужиться в языке с такой вещью, как перегрузка методов. Однако, для большей уверенности полез в гугл → «java параметры по умолчанию». На достаточно большом количестве форумов задаётся вопрос, есть ли эти самые значения по умолчанию или нет. И да, действительно, их нет. Но что самое интересное, поголовно все отвечающие (в большинстве заслуженные дядьки) делают удивлённые o_O и спрашивают «а где такое вообще может понадобиться?».
Вот так вот, казалось бы очевидная и всем известная вещь. А вот и не очевидная и известная далеко не всем.