当前位置: 首页 > 后端技术 > Java

类实例对象的类类型不属于类,为什么?

时间:2023-04-02 00:48:59 Java

前言的标题可能会让人一头雾水。让我们直接进入示例。如果我们在代码中执行下面的contentserverinstanceofMvpServer,它会返回什么?如果您得到正确答案,则无需阅读以下内容。答案是,当时看到这个答案的时候,真的是惊呆了。我什至怀疑像这样解决问题是我的主意。有时候真的要靠平时的积累。加载的类是什么?答案是类加载器。即使类包名相同,类名相同,如果从不同的类加载器加载,类也会不同。因此,我们可以先查看类加载器,从图中不难看出server和MvpServer的类加载器是不一样的。服务器类加载器由springdevtools包提供。因此,解决方法很简单。只需检查项目中是否引入了org.springframework.bootspring-boot-devtools即可。可以直接去掉,以免影响工程。如果实在不想去掉,可以将当前整个线程的类加载器设置为spring-boot-devtools的类加载器,通过Thread.currentThread().setContextClassLoader();当我们把类加载器改成After后一样,我们来看一下效果总结。可能我们平时背的都是一些八股八卦的文章,类加载器如boostrapclassloader、extclassloader、appclassloader等,但有时候真的查题就忽略了。