2016-10-02 8 views
1

本質的に数字であるデータを解析するにはdouble/intを使用する必要がありますが、nullをテストする必要があります。request.getParameter( "price")のDoublesの使用と解析。

サーブレットのrequest.getParameter()コールを使用してデータを収集しています。

これは私のコードです:

私は現在、文字列のInt/DoubleにキャストできないというClassCast例外を持っています。

このエラーを回避するにはどうすればよいですか?

int quantity = Integer.parseInt(request.getParameter("quantity") == null ? "" : Integer.parseInt(request.getParameter("quantity"))); 
+0

私の悪い無...だからがnullの場合、あなたはそれのようsoemthingを返す必要が.. '? "0" ' – 3kings

+0

@ 3kings、演算子==と呼ばれる別のエラーがあります。型int、nullについては未定義です。 –

+0

@ 3kings、はい、3者演算子を使用していますが、文字列パラメータをint、またはdoubleに解析する前に、私のコードに特別なことをしなければなりません。私はちょうどこれを修正する方法を知らないし、検索は私を助けていない。 –

答えて

2

あなたはquantityパラメータで可能なnull値に対処するためのビジネスロジックを決定する必要があります。一つの賢明な解決策は、quantityため見つからないかnull値は量がゼロであることを示していると仮定するかもしれません:

String quantityStr = request.getParameter("quantity"); 
int quantity = 0; // replace with whatever default value you want 

// only parse for non-null, non-empty inputs 
if (quantityStr != null && quantityStr.length() > 0) { 
    quantity = Integer.parseInt(quantityStr); 
} 
+0

これはトリックでした。私は0を加えて、問題は消えた。あなたは0(ゼロ)のアイテムの在庫を持つことができると思います。 –

関連する問題