Java教程

java.lang.ClassCastException 同包同类名强转异常

本文主要是介绍java.lang.ClassCastException 同包同类名强转异常,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

    • 问题
    • 解决

问题

今天碰到了一个很诡异的问题,有一段代码在执行强转时居然提示自己不能转自己,还真的是头一回碰到这种问题,代码及异常如下

ComplexOrderDbShardingAlgorithm complexOrderDbShardingAlgorithm = (ComplexOrderDbShardingAlgorithm) ReflectUtil.getFieldValue(dataBaseShardingStrategy, "shardingAlgorithm");
complexOrderDbShardingAlgorithm.init(tbShardingConfigServiceImpl);
Caused by: java.lang.ClassCastException: com.chinawu.cloud.ss.config.sharding.ComplexOrderDbShardingAlgorithm cannot be cast to com.chinawu.cloud.ss.config.sharding.ComplexOrderDbShardingAlgorithm
	at com.chinawu.cloud.ss.config.sharding.StartupConfig.loadLogInit(StartupConfig.java:57) ~[classes/:na]
	at com.chinawu.cloud.ss.config.sharding.StartupConfig.init(StartupConfig.java:39) ~[classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_191]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_191]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_191]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_191]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[spring-beans-5.2.4.RELEASE.jar:5.2.4.RELEASE]
	... 23 common frames omitted

解决

问题太不可思议了,业务代码原先本地调试都正常的,怎么就出现该问题了呢?
排查后发现项目pom中原本注释的springboot 热部署依赖这次因为有个业务需要调试就直接打开了,结果就导致了本次强转的问题。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

注释后重新测试了下,果然世界舒畅了。。。

这篇关于java.lang.ClassCastException 同包同类名强转异常的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!