Нужна помощь в понятие задачи Java

115
01 мая 2021, 20:10

Создать класс NumParser, и добавить в него статичный метод parse. Это метод должен принимать класс из которого нужно вызывать метод valueOf, и строку которая содержит число для парсинга.

Сигнатура метода parse: public static M parse(Class type, String value)

type - класс, из которого нужно вызывать метод valueOf value - строка для парсинга Я не могу понять что нужно сделать подскажите пожалуйста я сделал так

public class NumParser {
    public static <M> M parse(Class<? extends Number> type, String value) {
        return (M) Integer.valueOf(value);
    }
}
Answer 1

Хм. метод(ы) valueOf статичны. А значит Generic-ами тут не воспользуешься. Есть мысли на счет использования рефлексии. При помощи нее найти метод и вызвать его.

public class NumParser {
    public static void main(String[] args) {
        System.out.println(parse(Integer.class, "10")); // результат 10
        // Ошибка. Класс String не наследуется от Number
        // System.out.println(parse(String.class, "10")); 
    }
    public static <T extends Number> T parse(Class<T> type, String value) {
        try {
            Method method = type.getDeclaredMethod("valueOf", String.class);
            return type.cast(method.invoke(null, value));
        } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
            e.printStackTrace();
        }
        return null;
    }
}
READ ALSO
Как проверить сколько четных-нечетных цифр в числе введенном с клавиатуры

Как проверить сколько четных-нечетных цифр в числе введенном с клавиатуры

Допустим при вводе числа 41235 чтобы выдало, что четных чисел в числе 2, нечетных 3

97
grpc один netty на несколько микросервисов

grpc один netty на несколько микросервисов

У себя в коде я создаю netty на определенный порт и регистрирую сервис:

127
Загрузка данных с Firebase в RecyclerView

Загрузка данных с Firebase в RecyclerView

Я получаю изображение с БД Fibase и вывожу его через RecyclerViewВсе нормально, но т

88
Комбинация нескольких методов в RXJava2

Комбинация нескольких методов в RXJava2

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

81