开发者社区> 问答> 正文

java中关于强制类型转换java报错

"

tomcat中在实例化Servlet之后,进行了一次强制类型转换是这样的,我打印了一下Servlet类加载器

 InstanceManager instanceManager = ((StandardContext)getParent()).getInstanceManager(); try { servlet = (Servlet) instanceManager.newInstance(servletClass); System.out.println("Servlet classloader:"+Servlet.class.getClassLoader()); System.out.println("servlet instance classloader:"+servlet.getClass().getClassLoader()); } catch (ClassCastException e) { ... }

打印的信息是这样的

Servlet classloader:sun.misc.Launcher$AppClassLoader@18b4aac2
servlet instance classloader:ParallelWebappClassLoader
  context: my_servlet
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@2ef9b8bc

类加载器不同,这为什么也能强制转换?

" ![image.png](https://ucc.alicdn.com/pic/developer-ecology/0220c586c6f640bbadac47fe94dd33ab.png)

展开
收起
因为相信,所以看见。 2020-05-25 15:58:20 987 0
1 条回答
写回答
取消 提交回答
  • 阿里,我所有的向往

    类加载器和强制类型转换没有关系,只要两个类兼容就可以转换。更具体的事情是,一个类和它的父类可以由不同加载器加载。

    ![image.png](https://ucc.alicdn.com/pic/developer-ecology/5ea17de6c8f847ba9100cc3f819b4225.png)
    2020-05-25 22:56:37
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载