ResourceControllerでは、NumberFormatExceptionが整数に文字列からキャストすることはできません

ケビン・バルデス:

I getメソッドでこのコントローラを持っているようrecive 3 PARAMATERSこと java.lang.Integer

@GetMapping(path = Constantes.CONSULTAR_NODO_SUCESOR)
    public ConsultarNodoSucesorResponse consultarNodoSucesor(@RequestHeader HttpHeaders headerRequest,
                                                             @RequestParam(required = false) Integer idArbol, 
                                                             @RequestParam(required = false) Integer nivelFormulario, 
                                                             @RequestParam(required = false) Integer idSucesor,
                                                             @RequestParam(required = false) String rutaRelacion, 
                                                             @RequestParam(required = false) String tipoRelacion, 
                                                             HttpServletResponse headerResponse) {
        ConsultarNodoSucesorRequest request = new ConsultarNodoSucesorRequest(idArbol, nivelFormulario, idSucesor,
                rutaRelacion, tipoRelacion);
        return service.consultarNodoSucesor(headerRequest, request, headerResponse);
    }

cosumingすると、サーバーが不正な要求、完全なエラー以下のコード400を返しています

Failed to convert value of type 'java.lang.String' to required type 'java.lang.Integer'; nested exception is java.lang.NumberFormatException: For input string: \"4111111111\

私はPARAMTERに送信していidArbolた値4111111111をしかし、私はそれは罰金を作品1044444444のように、同じ偶然に値に送るとき、それは一方で、仕事を文句を言いません。

なぜこれが事ありますか?Aの最大値は何ですかInteger

ニコラス:

値とは異なり10444444444111111111のためには大きすぎるint(したがってInteger、)データ型は、したがって、として理解されますString値は、整数の許容範囲をオーバーフロー。

参照してください。プリミティブデータ型を

INTは:デフォルトでは、intデータ型は、32ビット-231の最小値及び231-1の最大値を有する2の補数整数を、署名されています。

春にはそのように振る舞うなぜあなたは不思議に思うかもしれません。これは、型変換の春のいくつかのアノテーションの機能Stringのデフォルト値です:

文字列ベースの要求入力を表すいくつかの注釈付きコントローラメソッドの引数(例えば、は@RequestParam@RequestHeader@PathVariable@MatrixVariable、および@CookieValue引数が文字列以外のものとして宣言されている場合)タイプの変換を必要とすることができます。

このような場合のために、型変換が自動的に設定コンバータに基づいて適用されます。デフォルトでは、単純型(intlongDate、など)がサポートされています。あなたはを通して型変換をカスタマイズすることができますWebDataBinder(参照DataBinder)またはでフォーマッタを登録することでFormattingConversionServic電子。参照してください。春のフィールドの書式を

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=362918&siteId=1