我需要从一种类型转换为另一种类型。谷歌搜索但坚持。假设我想将initObject
投射到Casted
类。
Object objInstance = initObject.getClass().newInstance();
Casted str=(Casted)objInstance;
为何选择ClassCastException
?
答案 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方法。
通常不建议使用强制转换,因为您基本上是在告诉编译器您知道已转换对象的类型,当然您可能错了。