解决java.lang.ClassCastException的java类型转换异常的问题
#代码知识 发布时间: 2026-01-12
在项目中,需要使用XStream将xml string转成相应的对象,却报出了java.lang.ClassCastException: com.model.test cannot be cast to com.model.test的错误。

原因:
项目中应该是采用了热部署,devtools,因为累加载器的不同所以会导致类型转换失败
措施:
在pom.xml中将以下代码注释掉:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency>
补充知识:TreeSet在add对象时报ClassCastException错误
TreeSet实现了SortedSet接口,可以对集合中的对象进行排序,但是在使用TreeSet时要注意一点,那就是要给TreeSet传递一个比较器,也就是指定比较规则,否则的话,它就不知道谁大谁小,也就不能排序了。此时它会报一个ClassCastException的异常。
jdk1.6文档里add方法关于这个异常是这样描述的:
Throws:
ClassCastException - if the specified object cannot be compared with the elements currently in this set
翻译:ClassCastException - 如果指定的对象不能与当前在此集合中的元素进行比较
public class TreeSetTest
{
public static void main(String[] args)
{
MyComparator comparator = new MyComparator();
// TreeSet<Student> set = new TreeSet<Student>(comparator);
// 错误的代码,少了比较器,运行则报下面的异常。
TreeSet<Student> set = new TreeSet<Student>();
Student s1 = new Student(50);
Student s2 = new Student(70);
Student s3 = new Student(40);
set.add(s1);
set.add(s2);
set.add(s3);
System.out.println(set);
}
}
class Student
{
int score;
public Student(int score)
{
this.score = score;
}
@Override
public String toString()
{
// TODO Auto-generated method stub
return String.valueOf(this.score);
}
}
class MyComparator implements Comparator<Student>
{
@Override
//按分数高低比较,int为返回负数、零、整数,这里我写的不咋好,但意思一样
public int compare(Student o1, Student o2)
{
// TODO Auto-generated method stub
int result = 0;
if(o1.score > o2.score)
{
result = 1;
}else
{
result = -1;
}
return result;
}
}
错误的运行结果:
Exception in thread "main" java.lang.ClassCastException: com.shengsiyuan2.Student cannot be cast to java.lang.Comparable at java.util.TreeMap.compare(TreeMap.java:1294) at java.util.TreeMap.put(TreeMap.java:538) at java.util.TreeSet.add(TreeSet.java:255) at com.shengsiyuan2.TreeSetTest.main(TreeSetTest.java:17)
解决办法:
把 TreeSet set = new TreeSet(); 改成:TreeSet set = new TreeSet(comparator);即可。
以上这篇解决java.lang.ClassCastException的java类型转换异常的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
代码知识SEO上一篇 : 解决java.util.NoSuchElementException异常的问题
下一篇 : IDEA下使用MyBatisCodeHelper插件的方法详解
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!