类实例对象的class类型却不属于该类,何解?
前言
标题可能会让人一头雾水,直接上例子
如果我们在代码中,执行如下内容
server instanceof MvpServer
它返回的东西会是啥,如果得出正确答案的朋友,下面内容就可以不用看了。
答案是
当时看到这个答案,我真的一脸懵逼,还一度怀疑是我idea问题
排查
像这种问题,有时候真的得靠平时的积累了,类是由什么进行加载?答案是类加载器,即使类包名一样,类名字一样,如果你是由不同的类加载器进行加载,则该类也是不一样。因此我们就可以优先从类加载器排查起
从图片就很容易看出来,server和MvpServer的类加载器不一样。server他这个类加载器是spring devtools这个包提供的。因此解决的思路就很简单,就查下项目中是否引入
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency>
有的话,可以直接去掉了,避免对项目产生影响。如果你确实不想去掉,你可以把当前整个线程的类加载器,都设置成spring-boot-devtools的类加载器,可以通过
Thread.currentThread().setContextClassLoader();
当我们把类加载都改成一样后,我们再来看下效果
总结
可能我们平时会背一些八股文,类加载器比如boostrap classloader、ext classloader、app classloader啥的,但有时候真的排查起问题,就会忽略了
类实例对象的class类型却不属于该类,何解?相关推荐
- C++ 笔记(16)— 类和对象(类定义、类实例对象定义、访问类成员、类成员函数、类 public/private/protected 成员、类对象引用和指针)
1. 类的定义 类定义是以关键字 class 开头,后跟类的名称.并在它后面依次包含类名,一组放在 {} 内的成员属性和成员函数,以及结尾的分号. 类声明将类本身及其属性告诉编译器.类声明本身并不能改 ...
- 什么是实例对象python_python判断类型:想知道一个对象(实例或者变量)是什么类型,什么结构的...
用type和isinstance 例子: ta={} ta['1']="a" ta={'2':"b"} ta['3']="c" #使用两个函 ...
- python类对象和实例对象
类对象支持两种操作:属性引用和实例化. 属性引用 使用 Python 中所有属性引用所使用的标准语法: obj.name. 有效的属性名称是类对象被创建时存在于类命名空间中的所有名称. 因此,如果类定 ...
- 前端与移动开发----JS高级----面向对象编程,类与实例对象,继承,严格模式,模板字符串,class封装tab栏
JS高级01 回顾上阶段 Javascript组成 ECMAScript: 基础语法 (变量, 表达式, 循环, 判断, 函数, 对象等) DOM: document 操作标签(获取, 增加, 插入, ...
- 【Kotlin】Kotlin 构造函数 ( 主构造函数 | 主构造函数声明属性 | init 初始化代码块 | 次构造函数 | 构造函数委托 | 调用构造函数创建实例对象 )
文章目录 I . 主构造函数 II . 主构造函数声明属性 III . init 初始化代码块 IV . 主构造函数参数 和 成员变量访问方式 V . 主构造函数 可见性 设置 VI . 次构造函数 ...
- C++类和对象学习总结
C++中的类与对象 http://blog.csdn.net/qq_32583189/article/details/52412369 C++中的类与对象 C中的类与对象 定义类 创建头文件 类和结构 ...
- (教学思路 c#之类一)声明类和对象、定义类成员及其引用
上一节(教学思路 c#之面向对象二)初步理解面向对象的基本概念中,我没有提到任何的代码,只是用语言和实例来说明什么是类和对象以及面向对象的特性等基本概念,类是c#程序语言的重要核心,也是构建应用程序最 ...
- python类与对象做项目_python 类和对象
一.编程范式 1.面向对象编程: 2.面向过程编程: 3.函数式编程 二.面向对象设计 面向对象设计:将一类具体事物的数据和动作整个到一起; 1.我们都学过函数,那么使用函数该怎么实现面向对象设计呢? ...
- 类和对象在JVM中是如何存储的,竟然有一半人回答不上来!
前言 这篇博客主要来说说类与对象在JVM中是如何存储的,由于JVM是个非常庞大的课题,所以我会把他分成很多章节来细细阐述,具体的数量还没有决定,当然这不重要,重点在于是否可以在文章中学到东西,是否对J ...
最新文章
- Java中栈、堆和常量池
- python txt提取特定数据_Python提取列表中的内容 用“python”怎么提取文件里的指定内容?...
- boost::geometry::strategy::distance::cross_track用法的测试程序
- GDCM:从VR查找标签的测试程序
- C#通过COM组件操作IE浏览器(二):使用IHTMLDocument3完成登录
- 永久删除 tadb.exe
- Apache Kafka简介
- 报错500 DEFAULT_INCOMPATIBLE_IMPROVEMENTS
- Matlab 基本画图命令
- Java面试基础篇-Redis缓存
- java调用javascript函数_Java调用javascript函数
- 香港电讯将构建光纤超高速公路
- 白话Istio—流量管理四大概念
- Linux下 eclipse下载
- 使用RestTemplate 对接微信付款码支付接入问题记录
- 最小二乘拟合n阶多项式【Matlab】
- Keil MDK终于免费了,并且没有代码大小限制~
- 【Redis-09】面试题之Redis数据结构与对象-RedisObject(下篇)
- Python基础,类的继承,类的多态继承等
- 保研面试/考研复试机器学习问题整理