有两节课

foo.bar.FileUploaderbarbar.foofoo.FileUploader

两者相同,并扩展Uploader

在代码中的某处使用了foo.bar.FileUploader,并以Uploader类型将其作为参数提供给我的函数。

现在,我需要将其转换回FileUploader而不是barbar.foofoo.FileUploader。这给出了一个错误:


错误-未处理的错误
java.lang.ClassCastException
foo.bar.FileUploader无法投射
barbar.foofoo.FileUploader


而且我不知道出了什么问题,我想是因为程序包不同。在这种情况下:有没有办法仍然使用该类并完成转换?

最佳答案

从技术上讲,它们不是同一类。

之所以得到ClassCastException,是因为JVM根本看不到它们是同一类型。也许您应该让两个类都实现相同的接口并强制转换为该接口?或者,仅在一个班上放掉演员?

09-13 06:33