Перейти к содержимому

Фотография

Необязательные параметры для метода

java

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 Gorod_b

Gorod_b

    Новый участник

  • Members
  • Pip
  • 9 сообщений
  • ФИО:Ваказов Рамис
  • Город:Ульяновск


Отправлено 11 декабря 2014 - 13:46

У меня приложение на выходе получает несколько отчетов с результатами обработки, и часть полей имеют почти рандомное значение, которое никак не отследить, я их просто срезаю. Но стало интересно, есть ли возможность в Java написать метод с необязательными полями или все же проще передавать массив?

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

    public String getLineWithoutPaths(String line, int[] paths, String separator){
        String linePath[] = line.split(separator);
        String newLine = "";
        for (int i = 0; i < linePath.length; i++) {
            if (Arrays.binarySearch(paths,i) < 0) {
                newLine += linePath[i] + separator;
            } else {
                newLine += separator;
            }
        }
        return newLine;
    }

Но все же стало интересно, можно ли реализовать передачу в метод неявного количества переменных, в php я такое делал, там все просто.


  • 0

#2 wret

wret

    Активный участник

  • Members
  • PipPip
  • 124 сообщений
  • Город:Москва

Отправлено 11 декабря 2014 - 14:14

Не?

http://stackoverflow...s-in-parameters


  • 1

#3 Gorod_b

Gorod_b

    Новый участник

  • Members
  • Pip
  • 9 сообщений
  • ФИО:Ваказов Рамис
  • Город:Ульяновск


Отправлено 11 декабря 2014 - 14:52

У меня метод примерно так же работает, но я имел ввиду значения по умолчанию, т.е. если я не передаю, скажем, "String separator", он по умолчанию становится равным "\t" в методе. Хотя, можно ведь в начале метода проверить, если значение пришло пустым, объявить его самостоятельно. 

Спасибо, сейчас попробую не переменную а пустой массив передать, может сработает.

В некоторых методах замучался таскать за собой переменные, которые не используются.


  • 0

#4 wret

wret

    Активный участник

  • Members
  • PipPip
  • 124 сообщений
  • Город:Москва

Отправлено 12 декабря 2014 - 08:56

Понял, в java нет такого

Посмотрите в сторону перегрузки

http://stackoverflow...arameter-values


  • 0

#5 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 12 декабря 2014 - 09:23

поддерживаю

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

таскать за собой переменные, которые не используются

 


  • 0

#6 aksas

aksas

    Активный участник

  • Members
  • PipPip
  • 130 сообщений
  • Город:Харьков

Отправлено 12 декабря 2014 - 09:43

Не совсем понятно кто, как и зачем вызвает эти методы :) Но может можно попробовать Builder использовать если параметров очень много. Вот тут в конце есть небольшой примерчик http://habrahabr.ru/post/86252/. Но а вобще да, перегрузка методов.


  • 0



Темы с аналогичным тегами java

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных