Java转换/类加载器问题
以下是问题的简化版本:
SomeClass c = (SomeClass) obj.getSomeClassParent() 并非总是如此,有时会触发异常 org.somepackage.SomeClass can't be cast to org.somepackage.SomeClass 这怎么可能 ?我想这与JAI imageio是本机lib的事实有关,但是中继怎么会发生这种情况?我可能错过了什么,但是什么? I'm using JAI imageio version 1.1 dcm4che 2.0.21 DICOM lib 这是原始代码 ImageInputStream iis = ImageIO.createImageInputStream(src); Iterator<ImageReader> iter = ImageIO.getImageReadersByFormatName("DICOM"); ImageReader reader = iter.next(); DicomImageReadParam param = (DicomImageReadParam) reader.getDefaultReadParam(); 而原来的例外 org.dcm4che2.imageio.plugins.dcm.DicomImageReadParam can't be cast to org.dcm4che2.imageio.plugins.dcm.DicomImageReadParam Exception Image http://img215.imageshack.us/img215/3894/exception.jpg 解决方法
我想如果可能会发生
>一个SomeClass实例是从ClassLoader X加载的(所以它的类是CL X的SomeClass或让我们调用它:CL(X).SomeClass) 所以你有了: > instance class = CL(X).SomeClass 或者换句话说 – 不是同一个类 – 因此类强制转换异常. 可能重复:ClassCastException when casting to the same class – 它也有一些很好的建议. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |