У меня очень простой вопрос, но, похоже, никто не ответил на него раньше.Кастинг общих типов в Java (например, значение T = (T) inputParam)
Мне нужно сделать отливку с объекта на общий тип T. что-то вроде этого.
T value = (T) param;
Вот мой пример кода.
public class App {
public static void main(String[] args) {
MyGeneric<Double> myGeneric = new MyGeneric();
Object obj = myGeneric.getValue("12.45");
}
}
public class MyGeneric<T> {
public T getValue(Object value) {
return (T) value;
}
}
У меня есть общий класс типа, и способ, который принимает объект в качестве параметра и возвращает один и тот же объект оттенок.
Я ожидаю, что мой класс автоматически отбрасывается с «12.45» до двойного значения 12.45. Однако мой класс просто ничего не делает. В конце значение в переменной «obj» по-прежнему является строкой.
Мой вопрос: как достичь того, чего я хочу. Причина, по которой я отправляю строку «12.45» в мой метод getValue(), состоит в том, что эти данные не контролируются мной. Внешнему приложению необходимо использовать мой общий класс, и по какой-то причине они отправляют строковое представление значения «12.45». Таким образом, мой класс может обрабатывать целые числа, float, double или что-то еще.
Вы просто хотите обрабатывать числовые значения? –