Как я могу преобразовать строку в класс определенного типа, расширяющий Number исключительно на основе того, что возвращJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу преобразовать строку в класс определенного типа, расширяющий Number исключительно на основе того, что возвращ

Сообщение Anonymous »

Если мне не хватает нужных вам деталей, просто дайте мне знать!
У меня есть строка, пусть будет

Код: Выделить всё

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();
X — это строка, а Y — что угодно.
Однако в методе я уже знаю, что имеющее значение — это число.Теперь я знаю, что это ничего не делает, но в моем коде это было бы полезно.
Моя конкретная проблема заключается в том, что я не могу преобразовать число в целое, длинное, двойное и т. д. в зависимости от того, что значение типа.
Как преобразовать
Long -> Integer, Byte и т. д.
Double -> Float
Все это будут оболочки, которые находятся в Java как число, поэтому мне приходится использовать общие методы, если вы не знаете лучшего способа,
основанного исключительно на том, что возвращает value.getClass(). Я надеюсь, что я не буду долго раздражать цепочку if else.
Я пробовал много вещей, но самое близкое, что у меня получилось, это выше, и я уже сказал, чего ожидаю.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -purely-ba
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»