У меня есть строка, пусть будет
Код: Выделить всё
String input;Теперь метод< /p>
Код: Выделить всё
putStringToMap(Number value, String input){
Number p = NumberFormat.getInstance().parse(input);
if(p.getClass().equals(Long.class)){
*some map*.put(name, value.getClass().cast(p.longValue()));
}else {
*some map*.put(name, value.getClass().cast(p.doubleValue()));
}//Doesn't work bad code
}
Код: Выделить всё
public HashMap settings=new HashMap();Однако в методе я уже знаю, что имеющее значение — это число.Теперь я знаю, что это ничего не делает, но в моем коде это было бы полезно.
Моя конкретная проблема заключается в том, что я не могу преобразовать число в целое, длинное, двойное и т. д. в зависимости от того, что значение типа.
Как преобразовать
Long -> Integer, Byte и т. д.
Double -> Float
Все это будут оболочки, которые находятся в Java как число, поэтому мне приходится использовать общие методы, если вы не знаете лучшего способа,
основанного исключительно на том, что возвращает value.getClass(). Я надеюсь, что я не буду долго раздражать цепочку if else.
Я пробовал много вещей, но самое близкое, что у меня получилось, это выше, и я уже сказал, чего ожидаю.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -purely-ba
Мобильная версия