解决java.lang.String cannot be cast to java.lang.Integer异常

Posted 程序员超时空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决java.lang.String cannot be cast to java.lang.Integer异常相关的知识,希望对你有一定的参考价值。

开发中经常会遇到java.lang.String cannot be cast to java.lang.Integer异常,记录下我怎么解决的。

这种异常就是经常会出现类型转换的地方,这里面有些小坑,必须要踩过,撸源码才知道问题原因,哈哈。

比如我在Double转String,Integer转String的过程中遇到的坑:

Double.parseDouble()和Double.valueOf()方法的区别:
parseDouble()方法得到的数据类型不能继续编译,因为这个方法得到的是 double ,是Java的基本数据类型。
valueOf()方法得到的数据类型可以继续往下编,因为这个方法得到的是 Double,是对象,属于Java的引用数据类型。

Double.valueOf容易出现的问题:
String a = “100”;
String b = “100”;
System.out.println(Double.valueOf(a)==Double.valueOf(b));//false,因为valueOf返回的是Double对象,是引用类型
System.out.println(Double.parseDouble(a)==Double.parseDouble(b));//true,parseDouble返回的double基本数据类型

解决java.lang.String cannot be cast to java.lang.Integer异常:
这是Integer转String的遇到的问题,Interger转String最好使用String.valueOf方法:
DataPushUtil.pushTimedFailureCaseDelay(key,Double.valueOf(String.valueOf(contentMap.get(key))));

以上是关于解决java.lang.String cannot be cast to java.lang.Integer异常的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.Integer cannot be cast to java.lang.String

Cannot resolve method 'setAttribute(java.lang.String, java.lang.String)'

Cannot resolve method"print(java.lang.String)"

SpringBoot统一返回处理出现cannot be cast to java.lang.String异常

数据转换bug花了半天时间 Java.math.BigDecimal cannot be cast to java.lang.String

为啥会出现cannot be cast to java.lang.String