转换类型'对象'到类型'类'

时间:2012-03-09 06:54:03

标签: java reflection

情景是:

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 - 类型。

类变量aClassanotherClass的值可能会有所不同,所以我不希望它们使用 parseXXX() 方法进行投放...

我尝试使用aClass.cast(anObj);,但它会抛出InstantiationException 有人能帮助我吗?

提前致谢。 ARK!

2 个答案:

答案 0 :(得分:1)

anObjanotherObjectString个实例。无论目标类是什么,你都不能只是强制转换它们,你需要一些将String实例转换为特定类型的方法(如Integer.parseInt())。

你需要某种约定才能工作(比如“类必须有一个静态fromString(String)方法”),然后你可以使用反射来获得转换方法。

答案 1 :(得分:1)

在将它们转换为aClass和anotherClass之前,需要将anObj和anotherObject转换为相应的类

aClass.cast(Integer.parseInt((String) anObj));
anotherClass.cast(Double.parseDouble((String) anotherObject));