这个错误是Java中典型的类型转换失败问题,具体原因如下:

错误信息表明,程序试图将一个字符串类型的值 "278.8363636363636" 转换为 Integer 类型的 height 属性,但转换失败了。

核心原因:

Integer 是Java中的整数类型,只能存储整数(如278),而输入的字符串包含小数部分(278.836...),无法直接转换为整数类型。

解决方法:

  1. 修改属性类型(推荐) 如果业务中 height 允许有小数(如身高可能精确到小数点后几位),应将 height 的类型从 Integer 改为 DoubleFloat,以支持小数:
// 原代码(错误)
private Integer height;

// 修改后(正确)
private Double height; // 或 Float height;
  1. 确保输入为整数 如果业务要求 height 必须是整数,需要检查输入来源(如前端表单、接口参数),确保传入的是整数(如"278"而不是"278.836...")。
  2. 转换时处理小数 若输入可能包含小数但需要转为整数,可在转换前进行取整处理(如四舍五入):
String heightStr = "278.8363636363636";
// 先转为Double,再取整
Double heightDouble = Double.parseDouble(heightStr);
Integer height = (int) Math.round(heightDouble); // 四舍五入为279