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
类加载器不同,这为什么也能强制转换?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
类加载器和强制类型转换没有关系,只要两个类兼容就可以转换。更具体的事情是,一个类和它的父类可以由不同加载器加载。