これが可能かどうかは本当にわかりません。しかし、異なるメソッドを呼び出すために、int値がnull
であるかどうかを確認したい場所で打っています。
それを行う方法はありますか?
実際、変数はnull
値を持つブラウザーから取得されます。 int
宣言をInteger
に変更できません。それはそれ自身の結果を持っているからです。
助言がありますか?
int
変数はnull
にはできません
null
をint
に変換する場合、0
を設定するか、例外をスローするか、またはInteger.MIN_VALUE
などの別の値を設定するかを決定するのはコンバーターです)。独自のコンバーターを接続してみてください。
int
型の変数が初期化されていない場合は使用できないため、変数を-1
のような値に初期化できると思います。目的の値ではないかどうかを確認する場合は、-1
であるかどうかを確認できます。
このようなコードについて質問していると思います。
int count = (request.getParameter("counter") == null) ? 0 : Integer.parseInt(request.getParameter("counter"));
int変数がクラスレベル変数(インスタンス変数)として宣言されている場合、デフォルトで0に設定されます。しかし、それはクライアントから送信された値が0かnullかを示しません。クライアントによって送信された値を初期化/設定するために呼び出すことができるセッターメソッドがある場合があります。その後、インジケーター値を定義できます。nullを示す負の値を指定できます。
public class Demo {
private static int i;
private static Integer j;
private static int k = -1;
public static void main(String[] args) {
System.out.println(i+" "+j+" "+k);
}
}
OutPut:0 null -1
おそらくブラウザは整数値の文字列表現を返しますか?実際、intをnullにすることはできません。 nullをチェックし、値がnullでない場合、String表現をintに変換できます。
intはnullにできません。 intに値を割り当てていない場合、デフォルト値は0になります。nullをチェックする場合は、宣言でintをIntegerにします。その場合、整数オブジェクトはヌルになる可能性があります。そのため、nullかどうかを確認できます。 javax bean検証でも、変数がIntegerとして宣言されるまで、@ NotNullアノテーションのエラーを取得することはできません。