Обрабатывать неинициализированные параметры в Java? - PullRequest
1 голос
/ 12 ноября 2009

Я вызываю метод Java с другого языка ( R ). Некоторые параметры являются необязательными в моей функции R. Каков наилучший способ обработки неинициализированных параметров в методе Java? (В идеале без использования обработки исключений ...)

Редактировать: Последующие действия на основе первого ответа:

"2. Initialize with predefinied defaults and continue"

Как проверить, что что-то не инициализировано?

Вот некоторый псевдокод подхода, который я надеялся использовать:

public static void test(int i) {
    if(!is.initialized(i) {
        i = 0;
    }
    // Do stuff with i
}

Редактировать 2: Перегрузка кажется большой работой. Я предпочел бы иметь один метод и обрабатывать каждый случай по умолчанию. Тем не менее, я не эксперт, и я хотел бы узнать, какова лучшая практика здесь.

Ответы [ 3 ]

2 голосов
/ 12 ноября 2009

Поскольку Java не поддерживает параметры по умолчанию, я бы порекомендовал использовать перегруженные версии метода, которые охватывают необязательные параметры, хотя в зависимости от того, сколько у вас необязательных параметров, это может привести к путанице.

EDIT: Как предлагается в комментарии, вы можете использовать varargs для сбора переменного числа параметров, а затем включить логику для обработки различных комбинаций обязательных и необязательных параметров внутри метода.

Для этого потребуется только один метод. См. Эту документацию Varargs

Используя varargs, вы можете использовать ту же логику, что и в псевдокоде.

2 голосов
/ 12 ноября 2009

Перегрузка - это не много работы. Обычно вы делаете что-то вроде:

public static int test(int i, int j) {
    // detailed processing here
}
public static int test(int i) {
    return test(i, 0);
}
public static int test() {
    return test(0, 0);
}

Таким образом, вам нужно реализовать логику обработки только один раз, а затем использовать короткие однострочные методы, которые заполняют все недостающее и передают управление методу, который выполняет реальную работу.

1 голос
/ 12 ноября 2009

Зависит.

  1. Отображение вида неформального сообщения пользователю, как правильно использовать программу и выход.
  2. Инициализировать с предопределенными значениями по умолчанию и продолжить.
  3. Бросок IllegalArgumentException.

В любом случае вам необходимо четко задокументировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...