Java 使用NewInstance进行强制转换

Java 使用NewInstance进行强制转换,java,casting,classcastexception,Java,Casting,Classcastexception,我需要从一种类型转换到另一种类型。谷歌搜索了一下,但还是结巴了。假设我想将initObject转换为Casted类 Object objInstance = initObject.getClass().newInstance(); Casted str=(Casted)objInstance; 为什么要生成ClassCastException?强制转换要求类Casted必须是类initObject的子类或子接口。例如: List<String>

我需要从一种类型转换到另一种类型。谷歌搜索了一下,但还是结巴了。假设我想将
initObject
转换为
Casted

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

为什么要生成
ClassCastException

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

List<String> list = new ArrayList<String>();
ArrayList<String> castedList = (ArrayList<String>) list; //works
Integer int = (Integer) list; // throws ClassCastException
List List=new ArrayList();
ArrayList castedList=(ArrayList)列表//作品
整数int=(整数)列表;//抛出类CastException
强制转换的另一种方法可以是转换相关对象的辅助方法。这种方法就是这样一个例子


通常不鼓励强制转换,因为您基本上是在告诉编译器您知道强制转换对象的类型,当然也可能是错误的。

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

List<String> list = new ArrayList<String>();
ArrayList<String> castedList = (ArrayList<String>) list; //works
Integer int = (Integer) list; // throws ClassCastException
List List=new ArrayList();
ArrayList castedList=(ArrayList)列表//作品
整数int=(整数)列表;//抛出类CastException
强制转换的另一种方法可以是转换相关对象的辅助方法。这种方法就是这样一个例子


通常不鼓励强制转换,因为您基本上是在告诉编译器您知道强制转换对象的类型,当然您可能是错误的。

那么,
initObject
的实际类是什么,它是否扩展了
casted
?不,它没有。任务是从任何给定类型转换为另一个给定类型。也许我需要创建一个动态的类来扩展我想要转换的对象的类?我想你们现在还不明白“转换”是什么意思。另外,请注意,这并不试图强制转换
initObject
,它创建了
initObject
的值所指对象类型的新实例…在Java中,除非a扩展了B,否则从类a强制转换到类B是不可能的。或者,除非a实现了B,否则从类a强制转换到接口B是不可能的,
initObject
的实际类是什么,它是否扩展了
Casted
?不,它没有。任务是从任何给定类型转换为另一个给定类型。也许我需要创建一个动态的类来扩展我想要转换的对象的类?我想你们现在还不明白“转换”是什么意思。另外,请注意,这并不试图强制转换
initObject
——它创建了
initObject
值所指对象类型的新实例……在Java中,除非a扩展了B,否则从类a强制转换到类B是不可能的。或者除非a实现了B,否则从类a强制转换到接口B是不可能的。没有问题。如果你满意的话,你也可以接受我的回答。没问题。如果你满意的话,你也可以接受我的回答