Получение только Возвращаемого значения из метода, который содержит System.out.print - PullRequest
0 голосов
/ 19 мая 2018

Как получить только возвращаемое значение из метода, если в этом методе также есть System.out.print.В следующем коде я получу возвращаемое значение, но каждый раз, когда я вызываю метод, он также выполняет System.out.print

public static void main(String[] args) {
    String name = pickAName("bob", "ed", "dan");
    System.out.printf(name);
}

public String pickAName (String...names){            
    System.out.printf("Randomly picking from %d names. %n",names.length);
    Random random = new Random();

    return names[random.nextInt(names.length)];
}

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

Если у вас нет контроля над методом, то невозможно, чтобы строка System.out.printf () не выполнялась при вызове метода pickAName.Под контролем я имею в виду, что вы создали метод pickAName или можете его изменить.

0 голосов
/ 19 мая 2018

Компьютеры не умны - они могут делать только то, что вы им говорите.В вашем случае он вызовет этот вызов на printf() и выполнит его каждый раз, когда вы вызываете этот метод.

Если есть какой-либо случай, в котором вы do хотите распечатать этот вызовдо printf(), тогда вы можете заключить его в условие if.

Если вам никогда не понадобится этот вывод, просто полностью удалите эту строку.

Если выиспользуя этот вызов к printf() в целях отладки, попробуйте привыкнуть к использованию инструментов отладки в вашей среде IDE - в конечном счете, это окупится.Особенно, когда вы начинаете писать гораздо более сложные программы или когда вы работаете с кодом, который вы не написали.

...