版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
今天出现了一个令我感到惊奇的问题
Java 强转类型,相信大家并不陌生,通常来说,强转类型都是我们知道这个类可以转换成另一个类,可能是他的父类或者是他的同类,这样转换一般来说千百年都不会出错。例如下面的
//Father 是 son 的父类
Father father = new Son();
Son son = (String)father;
- 1
- 2
- 3
- 4
上面这种方式当然是没有问题的,但是当引用类型的真实身份是父类本身的类型时,强制类型转换就会产生错误。例如:
//Father 是 son 的父类
Father father = new Father();
Son son = (String)father;
- 1
- 2
- 3
- 4
通常我们在不确定是不是可转的时候,我们会使用instanceof 关键字来判断一下,避免出错的情况。例如:
//Father 是 son 的父类
Father father = new Father();
//当满足条件的时候就可以强转了,否则我就不执行
if(father instanceof Son){
Son son = (String)father;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
是时候打破常规了
随着框架的普及,现在很多人都用上了springboot,也引入了越来越多的包,这个时候就很可能会出现包冲突,或者类型引用错误,或者对现有的一些代码造成影响,在这里,我遇到了自己人强转自己人报错的问题,也就是本文的重点“ java.lang.ClassCastException”
spring boot 项目中如果引入了 spring的devtools 包,就经常会产生这个问题,这个坑我找了几个小时。
runtime("org.springframework.boot:spring-boot-devtools:${springBootVersion}")
- 1
这个包如果用的不熟的话,找问题找起来就很费劲了,好了,各位晚安,愿天下代码无bug.
/**
* ┌─┐ ┌─┐ + +
* ┌──┘ ┴───────┘ ┴──┐++
* │ │
* │ ─── │++ + + +
* ███████───███████ │+
* │ │+
* │ ─┴─ │
* │ │
* └───┐ ┌───┘
* │ │
* │ │ + +
* │ │
* │ └──────────────┐
* │ │
* │ ├─┐
* │ ┌─┘
* │ │
* └─┐ ┐ ┌───────┬──┐ ┌──┘ + + + +
* │ ─┤ ─┤ │ ─┤ ─┤
* └──┴──┘ └──┴──┘ + + + +
* 神兽保佑
* 代码无BUG!
*/
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
</div>
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e9f16cbbc2.css" rel="stylesheet">
</div>
Hbase的基本原理(与HIVE的区别、数据结构模型、拓扑结构、水平分区原理、场景)
大数据技术体系 && NoSQL数据库的基本原理
软件测试面试经验
APP非功能测试
手机APP测试(测试点、测试流程、功能测试)
性能测试学习之路 (四)jmeter 脚本开发实战(JDBC &JMS &接口脚本 & 轻量级接口自动化测试框架)
HTML 实战生成一张页面
前端性能测试(H5性能测试)
JAVA基础——设计模式之观察者模式