Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lan
来源:互联网 发布:证件照蓝底渐变软件 编辑:程序博客网 时间:2024/06/07 08:38
问题描述:编写以下程序时,能够正常编译,但运行时报异常
package sample; import java.util.*; public class SetTest { public static void print(Set s1) { Iterator iter=s1.iterator(); while(iter.hasNext()) { System.out.print(iter.next()+" "); } System.out.println(); } public static void main(String[] args) { System.out.println("------------------------------"); Set s2=new TreeSet(); System.out.println("s2的大小:"+s2.size()); s2.add("ads"); s2.add("Hello world"); s2.add(123); System.out.println("s2的大小:"+s2.size()); print(s2); } }
运行时异常提示:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at java.lang.Integer.compareTo(Integer.java:52)at java.util.TreeMap.put(TreeMap.java:568)
at java.util.TreeSet.add(TreeSet.java:255)
at sample.SetTest.main(SetTest.java:33)
原因:String cannot be cast to java.lang.Integer,String类型数据不能转到Integer类型,这是因为程序中的TreeSet中添加数据时要求进行对数据排序,而进行比较时只能在统一的类型下面比较,所以Integer 类型的和String类型的就会不能比较,所以报异常
解决方法:将add()函数中的内容全部修改为字符串类型,即add("123");,之后就能正常运行了
1 0
- Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lan
- Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljav
- Exception in thread "main" java.lang.ClassCastException: java.math.BigDecimal cannot be cast to ja
- Exception in thread "main" java.lang.ClassCastException
- Exception in thread "main" java.lang.ClassCastException: oracle.jdbc.driver.T4CConnection cannot be
- java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
- 【ERROR】java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
- java.lang.ClassCastException: java.lang.Character cannot be cast to java.lang.String
- java.lang.ClassCastException: java.lang.Character cannot be cast to java.lang.String
- java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
- mybatis报错java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
- java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
- java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
- java.lang.ClassCastException: java.lang.Character cannot be cast to java.lang.String|<s:property val
- java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
- java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
- java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.Obj
- 错误:java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.lang.String
- R语言数据类型转换 List Vector Dataframe
- 利用反射,找出某类的所有方法,构造器和全部域名
- 关于安装配置ambari时遇到的问题及解决办法
- git使用小记
- 【学习Linux】结构化命令——case
- Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lan
- android中简单的反射操作
- 0003.spark2.0源码分析(3)--master注册机制与状态管理
- 虚函数和纯虚函数的区别
- dp+bitset优化______La Vie en rose( hdu 5745 2016多校第二场)
- 类的特性反射ObsoleteContiona Assembly程序集
- scala基础----Map操作2
- 一周一书一文(20160814):让未来现在就来——彭小六
- 【BZOJ1026】windy数,数位DP