这个错误是Java中典型的类型转换失败问题,具体原因如下:
错误信息表明,程序试图将一个字符串类型的值 "278.8363636363636" 转换为 Integer 类型的 height 属性,但转换失败了。
核心原因:
Integer 是Java中的整数类型,只能存储整数(如278),而输入的字符串包含小数部分(278.836...),无法直接转换为整数类型。
解决方法:
- 修改属性类型(推荐)
如果业务中
height允许有小数(如身高可能精确到小数点后几位),应将height的类型从Integer改为Double或Float,以支持小数:
// 原代码(错误)
private Integer height;
// 修改后(正确)
private Double height; // 或 Float height;- 确保输入为整数
如果业务要求
height必须是整数,需要检查输入来源(如前端表单、接口参数),确保传入的是整数(如"278"而不是"278.836...")。 - 转换时处理小数 若输入可能包含小数但需要转为整数,可在转换前进行取整处理(如四舍五入):
String heightStr = "278.8363636363636";
// 先转为Double,再取整
Double heightDouble = Double.parseDouble(heightStr);
Integer height = (int) Math.round(heightDouble); // 四舍五入为279
















