Вы можете сделать это следующим образом:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
long houseNumberOfFloors = input("Enter valid house number of floors: ", br, "checkHouseNumberOfFloors");
Integer houseNumberOfLifts = input("Enter valid house number of lifts: ", br, "checkHouseNumberOfLifts");
}
static int input(String message, BufferedReader br, String methodName) {
int value = 0;
Method method;
Boolean valid;
System.out.print(message);
try {
value = Integer.parseInt(br.readLine());
method = FlatAttrValidator.class.getMethod(methodName, Integer.class);
valid = (Boolean) method.invoke(null, value);
if (!valid) {
input(message, br, methodName);
}
} catch (IOException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
input(message, br, methodName);
}
return value;
}
}