ssh整合java.lang.ClassCastException: package091.model.product.ProductCategory_$$_javassist_2 cannot be

本文探讨了在项目中遇到的Javassist不同版本导致的ClassCastException错误,具体表现为无法将ProductCategory对象转换为Proxy对象。文章分析了冲突的原因,并指出问题出现在同时存在javassist-3.11.0.GA.jar和javassist-3.18.1-GA.jar两个不同版本的jar包上。
严重: Could not execute action: /product/product_findCommendProduct

java.lang.ClassCastException: package091.model.product.ProductCategory_$$_javassist_2 cannot be cast to javassist.util.proxy.Proxy


是jar包冲突,

javassist-3.11.0.GA.jar

javassist-3.18.1-GA.jar


多出了一个javassist-3.11.0.GA.jar

`java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Long` 是由于在代码中尝试将 `Double` 对象直接强制转换为 `Long` 对象,而这两种类型之间不能直接进行强制类型转换导致的。以下是几种解决该问题的方法: ### 使用 `doubleValue()` 和 `longValue()` 方法 通过 `doubleValue()` 方法获取 `Double` 对象的基本数据类型 `double` 值,然后使用 `Math.round()` 方法将其转换为最接近的 `long` 值,或者直接进行强制类型转换。 ```java Double doubleValue = 123.45; long longValue = Math.round(doubleValue); // 使用 Math.round() 四舍五入 // 或者直接强制类型转换,会截断小数部分 // long longValue = (long) doubleValue.doubleValue(); System.out.println(longValue); ``` ### 检查类型并进行转换 在进行类型转换之前,先检查对象的类型,确保不会出现类型不匹配的问题。 ```java Object value = 123.45; if (value instanceof Double) { Double doubleValue = (Double) value; long longValue = Math.round(doubleValue); System.out.println(longValue); } ``` ### 从集合或映射中获取值时进行类型检查 如果从集合或映射中获取值,要确保值的类型正确。 ```java import java.util.HashMap; import java.util.Map; Map<String, Object> map = new HashMap<>(); map.put("key", 123.45); Object value = map.get("key"); if (value instanceof Double) { Double doubleValue = (Double) value; long longValue = Math.round(doubleValue); System.out.println(longValue); } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值