Sim*_*mon 5 java rest spring spring-mvc
我不确定是否缺少真正的基本知识,但这就是我想做的。
我想对此地址进行其余的API调用:
https:// localhost:8080 / fetchlocation?lat = -26.2041028&lng = 28.0473051&radius = 500
我的休息方法是:
public void fetchlocation(@RequestParam Long lat, @RequestParam Long lng, @RequestParam int radius){ //fetches location}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
“时间戳记”:1442751996949,“状态”:400,“错误”:“错误请求”,“异常”:“ org.springframework.beans.TypeMismatchException”,
“消息”:“无法转换类型'java.lang的值.String'为必需的类型'java.lang.Long';嵌套的异常为java.lang.NumberFormatException:对于输入字符串:\“-26.2041028 \”“,
” path“:” / fetchlocation“
我猜这是因为在我进行GET调用时,rest API会以字符串而不是Longs的形式接收坐标。如何确保在调用时其余API获得Longs而不是String值?
当我更改其余API方法以将Strings作为参数时,我可以轻松地使该方法起作用,但是对于类型检查,我更喜欢使用Longs。
public void fetchlocation(@RequestParam String lat, @RequestParam String lng, @RequestParam String radius){ //fetches location}
Run Code Online (Sandbox Code Playgroud)
您尝试转换为的数字java.lang.Long是-26.2041028。
您的号码包含一个.(十进制)。这对于Longs是不允许的。您需要使用java.lang.Double.
并且还带有一个成功的数量L为Long或D用于Double静态初始化。尽管不是必需的,但它使代码更具可读性。
就像,-26.2041028D对于Double。
| 归档时间: |
|
| 查看次数: |
37912 次 |
| 最近记录: |