使用NewInstance进行投射

时间:2015-07-20 20:37:55

标签: java casting classcastexception

我需要从一种类型转换为另一种类型。谷歌搜索但坚持。假设我想将initObject投射到Casted类。

Object objInstance = initObject.getClass().newInstance();
                    Casted str=(Casted)objInstance;

为何选择ClassCastException

1 个答案:

答案 0 :(得分:6)

强制转换要求类Casted必须是类initObject的子类或子接口。例如:

List<String> list = new ArrayList<String>();
ArrayList<String> castedList = (ArrayList<String>) list; //works
Integer int = (Integer) list; // throws ClassCastException

cast的替代方法可能是一个将转换相关对象的辅助方法。这样的例子是Collections.toArray方法。

通常不建议使用强制转换,因为您基本上是在告诉编译器您知道已转换对象的类型,当然您可能错了。