0. 서론
우아한테크코스 과제 중 잘못된 입력 시 에러 발생 후 재입력을 받아야 하는 경우가 있었다.
단순히 그런 경우마다 try catch문을 이용해 해결하는 것보다 이 방법을 이용하면 손쉽게 재입력을 할 수 있게 된다.
1. 클래스 정의
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;
public class Repeat {
public static <T> T repeat(Supplier<T> inputReader) {
while (true) {
try {
return inputReader.get();
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}
public static <T> void repeat(Consumer<T> inputReader, T parameter) {
while (true) {
try {
inputReader.accept(parameter);
return;
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}
public static <T, R> R repeat(Function<T, R> inputReader, T parameter) {
while (true) {
try {
return inputReader.apply(parameter);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
}
}
}
반응형