本当に基本的なものがないかどうかはわかりませんが、これは私がやりたいことです。
このアドレスにREST API呼び出しを行いたい:
https:// localhost:8080/fetchlocation?lat = -26.2041028&lng = 28.0473051&radius = 5
私の休息方法は:
public void fetchlocation(@RequestParam Long lat, @RequestParam Long lng, @RequestParam int radius){ //fetches location}
私はこのエラーを受け取ります:
"timestamp":1442751996949、 "status":400、 "error": "Bad Request"、 "exception": "org.springframework.beans.TypeMismatchException"、
"message": "タイプ 'Java.lang.String'の値を必要なタイプ 'Java.lang.Long'に変換できませんでした。ネストされた例外はJava.lang.NumberFormatExceptionです:入力文字列:\"- 26.2041028\""、
"パス": "/ fetchlocation"
GET呼び出しを行うと、Rest APIがLongではなくStringとして座標を受け取るためだと思います。呼び出しが行われたときに、残りのAPIが文字列値ではなくLong値を取得するようにするにはどうすればよいですか?
パラメータとして文字列を受け取るように残りのAPIメソッドを変更すると、メソッドを簡単に機能させることができますが、型チェックにはLongを使用したいと思います。
public void fetchlocation(@RequestParam String lat, @RequestParam String lng, @RequestParam String radius){ //fetches location}
Java.lang.Long
に変換しようとしている番号は-26.2041028
です。
番号に.
(10進数)が含まれています。これはLong
sでは許可されていません。 Java.lang.Double
を使用する必要があります。
また、静的な初期化の場合は、L
の場合はLong
を、D
の場合はDouble
を使用して数値を続けます。必須ではありませんが、コードが読みやすくなります。
Double
の-26.2041028D
など。