这是因为类型装换错误。
出现这种情况的原因及解决方法有:
原因:String cannot be cast to java.lang.Integer,String类型数据不能转到Integer类型,这是因为程序中的TreeSet中添加数据时要求进行对数据排序,而进行比较时只能在统一的类型下面比较,所以Integer 类型的和String类型的就会不能比较,所以报异常
解决方法:将add()函数中的内容全部修改为字符串类型,即add("123"),之后就能正常运行了
扩展资料:
类型转换是因为每个函数都可以强制将一个表达式转换成某种特定数据类型。自动(隐式)类型转换不会导致数据丢失。
数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。 变量是用来存储值的所在处;它们有名字和数据类型。
变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。

classcastexception需要捕获吗
ClassCastException是指类转换异常。出现这个异常的原因如下:
一个类是数字类,而由于误操作,错误的将数字类向数字类转换改写成了数字类向字符串类的转换,从而产生了异常。
强制转换时发生了这个异常。在java中经常会出现类转换异常,出现了这个异常就需要耐心处理,可以在百度上搜索,也可以找百度贴吧中找答案。
classcastexception是什么异常
classcastexception不需要捕获。
这种情况异常不要求用户一定要使用捕获处理的。
ClassCastException异常属于RuntimeException异常的子类。
java 异常ClassCastException
ClassCastException 主要发生在类型转换上,有时候根据应用的需要会使用类型转换,比如子类转父类,有些相关的但没有继承关系的类型互相转换,还有就是为了传输和存储的需要被序列化的类要转成Object或者从Object转成特定的类等等。如果类型不能被转换,就会发生这个Exception。
不是楼上说的原因,而是父类不可以强制转换为子类,因为子类有的方法父类可能没有。
如 Object x = new Object()
System.out.println((String)x)
假设可以转,调用x String方法时肯定就找不到了
以上就是关于java.lang.ClassCastException异常出现有哪些情况?全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!