java string转long报错_java.lang.Integer cannot be cast to java.lang.Long解决办法

你好我是辰兮,本次是项目遇到的java.lang.Integer cannot be cast to java.lang.Long异常以及相对应的解决方案。

文章目录

一、实战问题

用postman测试数据报错,类型转换异常!

ad487488c7f07fe0a760b0148c0c7976.png

如何将Integer类型转换成长整形 ?

先转成String型,再转Long;

1、转String型:A.toString

2、再由String型转Long 型即可

方法1: long B = Long.valueOf("A.toString");

方法2: long B = Long.parseLong("A.toString");

案例:用json串来传值

@PostMapping("/updateLike")

public CommonResponse updateLike( @RequestBody HashMap map) {

Long postId = Long.valueOf(map.get("postId").toString());

Long userId = Long.valueOf(map.get("userId").toString());

Integer likeStatus = (Integer) map.get("likeStatus");

return CommonResponse.success(postReviewService.updateLike(reviewId,userId,likeStatus));

}

再次用postman测试

522783de5a6c8f1e502d9e788d8687bb.png

二、源码学习

底层源码分析学习

public static Long valueOf(String s) throws NumberFormatException

{

return Long.valueOf(parseLong(s, 10));

}

我们发现valueOf的底层还是parseLong

public static long parseLong(String s) throws NumberFormatException {

return parseLong(s, 10);

}

小结:先转成String型,再转Long;

Hope that we can grow and progress as soon as possible and become an excellent Java Development Engineer.

标签:lang,java,String,parseLong,valueOf,Long,toString,Integer

来源: https://blog.youkuaiyun.com/weixin_45393094/article/details/106576241

Java代码中遇到"java.lang.Long cannot be cast to java.lang.Integer"的异常,通常是由于将Long类型的对象强制换为Integer类型时出现了错误。要解决这个问题,可以使用以下方法: 1. 使用适当的类型换:确保在将Long类型的对象换为Integer类型之前,先检查其值是否适合Integer类型的范围。可以使用Long的intValue()方法将Long对象换为int类型,然后再将int类型换为Integer类型。 ```java Long longValue = 123456789L; if (longValue >= Integer.MIN_VALUE && longValue <= Integer.MAX_VALUE) { Integer integerValue = Integer.valueOf(longValue.intValue()); // 使用integerValue进行后续操作 } else { // 处理超出Integer范围的情况 } ``` 2. 使用包装类的valueOf方法:可以使用Integer类的valueOf方法将Long类型的对象换为Integer类型。这种方法会自动处理超出Integer范围的情况,如果超出范围,则会返回一个新的Integer对象。 ```java Long longValue = 123456789L; Integer integerValue = Integer.valueOf(longValue.intValue()); // 使用integerValue进行后续操作 ``` 3. 使用字符串换:将Long类型的对象换为字符串,然再将字符串换为Integer类型。这种方法可以处理任意长度的数字,但需要注意处理可能出现的NumberFormatException异常。 ```java Long longValue = 123456789L; String stringValue = longValue.toString(); try { Integer integerValue = Integer.valueOf(stringValue); // 使用integerValue进行后续操作 } catch (NumberFormatException e) { // 处理换异常 ``
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值