Не понимаю почему валидатор не принимает такое решение. Метод readString() написан идентично readInt() и при этом принят.
Метод выполняет необходимое, т.е. вывод System.out.println(ConsoleHelper.readInt()); выглядит следующим образом:
nan
Произошла ошибка при попытке ввода числа. Попробуйте еще раз.
5
5
Process finished with exit code 0
P.S. Вывод с переносом от отсутствия здравых идей. Первая попытка была с нормальным сообщением и таким же результатом.
Пока в циклах не переписывал т.к. это будет выглядеть хуже и принесет психологический диссонанс)
Дополнение:
написал через цикл в виде
public static int readInt(){
int out;
while (true) {
String in = readString();
try {
out = Integer.parseInt(in);
return out;
} catch (NumberFormatException ignore) {
System.out.println("Произошла ошибка при попытке ввода числа. Попробуйте еще раз.");
}
}
}
вывод такой же, результат такой же, непонятно.package com.javarush.task.task30.task3008;
public class Server {
public static void main(String[] args){
System.out.println(ConsoleHelper.readInt());
}
}