有两节课foo.bar.FileUploader
和barbar.foofoo.FileUploader
两者相同,并扩展Uploader
在代码中的某处使用了foo.bar.FileUploader
,并以Uploader
类型将其作为参数提供给我的函数。
现在,我需要将其转换回FileUploader
而不是barbar.foofoo.FileUploader
。这给出了一个错误:
错误-未处理的错误
java.lang.ClassCastException
:
foo.bar.FileUploader
无法投射
到barbar.foofoo.FileUploader
而且我不知道出了什么问题,我想是因为程序包不同。在这种情况下:有没有办法仍然使用该类并完成转换?
最佳答案
从技术上讲,它们不是同一类。
之所以得到ClassCastException,是因为JVM根本看不到它们是同一类型。也许您应该让两个类都实现相同的接口并强制转换为该接口?或者,仅在一个班上放掉演员?