Java 如果类名相等,如何使用ClassLoader的名称增强ClassCastException消息?
我得到了一个Java 如果类名相等,如何使用ClassLoader的名称增强ClassCastException消息?,java,classloader,classcastexception,Java,Classloader,Classcastexception,我得到了一个ClassCastException,因为同一个类由不同的类加载器加载 因此,ClassCastException的结果消息不是很有用 例如:org.apache.cxf.jaxrs.impl.ResponseImpl不能强制转换为org.apache.cxf.jaxrs.impl.ResponseImpl 有没有办法通过两个类加载器的名称来增强ClassCastException的消息 例如:org.apache.cxf.jaxrs.impl.ResponseImpl由org.ec
ClassCastException
,因为同一个类由不同的类加载器加载
因此,ClassCastException的结果消息不是很有用
例如:org.apache.cxf.jaxrs.impl.ResponseImpl不能强制转换为org.apache.cxf.jaxrs.impl.ResponseImpl
有没有办法通过两个类加载器的名称来增强ClassCastException的消息
例如:org.apache.cxf.jaxrs.impl.ResponseImpl由org.eclipse.osgi.internal.baseAdapter加载。DefaultClassLoader@21f67a65[org.apache.cxf.cxf rt frontend jaxrs:2.7.2(id=64)]无法强制转换为由其他类加载器加载的org.apache.cxf.jaxrs.impl.ResponseImpl
仅当类的名称相等时,才应添加类加载器的名称
我认为ClassCastException是在JRE的内部创建的
那么JRE需要修改吗
我是否必须在某处发布增强建议
我无法通过其他方式获取其他类加载器的名称:
•ClassCastException发生在外部代码中(本例中为CXF)
•(远程)通过Eclipse调试不会显示实例的类加载器
•由于远程服务器出现问题,下载堆转储需要几个小时
PS:Runtime:Java(TM)SE运行时环境(build 1.8.0_25-b17)