Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lan
2016-08-14 08:07
836 查看
问题描述:编写以下程序时,能够正常编译,但运行时报异常
运行时异常提示:
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");,之后就能正常运行了
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");,之后就能正常运行了
相关文章推荐
- Exception in thread "main" java.lang.ClassCastException: java.math.BigDecimal cannot be cast to ja
- Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljav
- Exception in thread "main" java.lang.IllegalArgumentException: node to traverse cannot be null!
- Exception in thread "main" java.lang.ClassCastException: $Proxy0 利用匿名内部类创建InvocationHandler接口实现
- java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String
- java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
- java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
- java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String
- java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String
- java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
- Caused by: java.lang.ClassCastException: org.hibernate.type.StringType cannot be cast to org.hiberna
- java.lang.ClassCastException: java.lang.Character cannot be cast to java.lang.String
- struts2的<s:iterator>标签 遇到的问题:java.lang.ClassCastException:cannot be cast to java.lang.String
- Caused by: java.lang.ClassCastException: org.hibernate.type.StringType cannot be cast to org.hiberna
- java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.Obj
- Exception in thread "main" java.lang.ClassCastException
- Exception in thread "main" java.lang.ClassCastException: $Proxy13
- 关于反编译apk出现Exception in thread "main" java.lang.ClassCastException: ....
- java.lang.ClassCastException: java.lang.Character cannot be cast to java.lang.String
- java.lang.ClassCastException: SpringServletContainerInitializer cannot be cast to ServletContainerIn