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是不可能的。没有问题。如果你满意的话,你也可以接受我的回答。没问题。如果你满意的话,你也可以接受我的回答