输入类型String的NumberFormatException:SpringBoot Restcontroller

时间:2019-05-13 06:09:31

标签: spring-boot java-8 spring-restcontroller numberformatexception

我有一个带有引导服务的springboot应用程序。我的一项服务接受带有@requestBoday批注的对象作为参数。以前,我的类变量之一是Long类型,现在转换为String。例如: 上一课:

Class SomeObject{
   String  id;
   Long code;
}

我已转换为:

Class SomeObject{
    String id;
    String code;
}

现在,当我传递“ 4568”或类似数字值时,它可以正常工作。 但是当我通过“ ABC100”时,它将引发数字格式异常。

[ERROR] 2019-05-13 11:10:17,031 com.wallet.config.AOPConfiguration afterExceptionOfService - execution of execution(Map com.wallet.service.MemberService.redeemVoucher(String,ReferalVoucherRedeem))--------java.lang.NumberFormatException: For input string: "SB100"
[ERROR] 2019-05-13 11:10:17,031 com.wallet.config.AOPConfiguration afterException - execution of execution(ResponseEntity com.wallet.controller.PosIntegrationController.redeemVoucher(ReferalVoucherRedeem,ServletRequest))--------java.lang.NumberFormatException: For input string: "SB100"

谁能告诉我该如何解决?此问题发生在以下行:

public ResponseEntity<Map> redeemVoucher(@RequestBody SomeObject someObject,ServletRequest req) {}

1 个答案:

答案 0 :(得分:-2)

您在此处输入的“代码”值可能会转换为数字值,如果不是由于数据库的列类型而导致的话,则可能会转换为数字值。该代码必须在假设“代码”为数字(之前是数字)的情况下编写。通过查看完整的跟踪信息,您也许可以了解其起源。

请参阅本文-NumberFormatException