Преобразование переменной типа «Объект» в тип «Класс» - PullRequest
0 голосов
/ 09 марта 2012

Сценарий:

Object anObj="7";
Object anotherObject="7.77";
Class aClass=Class.forName("java.lang.Integer");
Class anotherClass=Class.forName("java.lang.Double");

Я хочу набрать anObj к aClass -типу и anotherObject к anotherClass -типу.

Значения для переменных класса aClass и anotherClass могут различаться, поэтому я не хочу, чтобы их приводили с использованием методов parseXXX() ...

Я пытался использовать aClass.cast(anObj);, но выдает InstantiationException Кто-нибудь может мне помочь?

Спасибо заранее. ARK.!

Ответы [ 2 ]

1 голос
/ 09 марта 2012

Перед приведением их к aClass и anotherClass, вам необходимо привести anObj и anotherObject к соответствующим классам

aClass.cast(Integer.parseInt((String) anObj));
anotherClass.cast(Double.parseDouble((String) anotherObject));
1 голос
/ 09 марта 2012

anObj и anotherObject являются String экземплярами.Независимо от того, что является целевым классом, вы не можете просто привести их, вам нужен какой-то метод (например, Integer.parseInt()), который преобразует экземпляр String в конкретный тип.

Для этого нужно какое-то соглашениеработать (например, «класс должен иметь статический fromString(String) метод»), а затем вы можете перейти к методу преобразования, используя отражение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...