如何防止空请求参数引发异常



我正在使用 Kotlin 在 Spring Boot 环境中工作。我用一个用@GetMapping注释的方法制作了一个控制器。此方法将一些类型@RequestParam参数声明为 Double 类型。如果我尝试在不提供这些参数的情况下调用我的方法,我的代码会引发以下异常:

java.lang.IllegalStateException: Optional double parameter 'latitude' is present but cannot be translated into a null value due to being declared as a primitive type.

我假设参数具有默认值(可能是 0.0),但 Kotlin 需要一个可以为空的对象,因此引发了异常。

如果我提供参数,

一切正常,但是如果没有提供参数,我希望我的代码可以正常工作。

如何避免此异常?

我的控制器如下所示:

@RestController
@RequestMapping("/api/stations")
class StationController {
    @GetMapping
            fun findAll(@RequestParam(value = "latitude", required = false) currentLatitude: Double,
                        @RequestParam(value = "longitude", required = false) currentLongitude: Double): ResponseEntity<List<Entity>> {
                //Method body
            }

也许有关基本类型的文档的以下部分会对您有所帮助:

在Java平台上,数字被物理存储为JVM原语类型,除非我们需要一个可为空的数字引用(例如Int?)或涉及泛型。在后一种情况下,数字被装箱。

那么你的猜测可能是正确的。尝试使用Double?,应该没问题。

相关内容

  • 没有找到相关文章

最新更新