Какой лучший способ имитировать необязательные параметры в Java? - PullRequest
3 голосов
/ 17 марта 2010

У меня есть метод Java, который принимает 3 параметра, и я бы хотел, чтобы у него также был 4-й «необязательный» параметр. Я знаю, что Java не поддерживает необязательные параметры напрямую, поэтому я закодировал 4-й параметр, и когда я не хочу его передавать, я передаю null. (И затем метод проверяет наличие null перед его использованием.) Я знаю, что это немного неуклюже ... но другой способ - перегрузить метод, что приведет к небольшому дублированию.

Какой лучший способ реализовать необязательные параметры метода в Java: использование обнуляемого параметра или перегрузка? А почему?

Ответы [ 2 ]

10 голосов
/ 17 марта 2010

Напишите отдельный метод с 3 параметрами, который перенаправляет к версии с 4 параметрами. Не стучите по нему.

С таким количеством параметров вы можете рассмотреть вопрос о сборщике или подобном.

4 голосов
/ 17 марта 2010

Используйте что-то вроде этого:

public class ParametersDemo {

    public ParametersDemo(Object mandatoryParam1, Object mandatoryParam2, Object mandatoryParam3) {
    this(mandatoryParam1,mandatoryParam2,mandatoryParam3,null);
    }


    public ParametersDemo(Object mandatoryParam1, Object mandatoryParam2, Object mandatoryParam3, Object optionalParameter) {
    //create your object here, using four parameters
    }

}
...