web-dev-qa-db-ja.com

intがnullまたは空ではないかどうかを確認するにはどうすればよいですか?

これが可能かどうかは本当にわかりません。しかし、異なるメソッドを呼び出すために、int値がnullであるかどうかを確認したい場所で打っています。

それを行う方法はありますか?

実際、変数はnull値を持つブラウザーから取得されます。 int宣言をIntegerに変更できません。それはそれ自身の結果を持っているからです。

助言がありますか?

14
user405398

int変数はnullにはできません

nullintに変換する場合、0を設定するか、例外をスローするか、またはInteger.MIN_VALUEなどの別の値を設定するかを決定するのはコンバーターです)。独自のコンバーターを接続してみてください。

32
Bozho

int型の変数が初期化されていない場合は使用できないため、変数を-1のような値に初期化できると思います。目的の値ではないかどうかを確認する場合は、-1であるかどうかを確認できます。

3
user5432692

このようなコードについて質問していると思います。

int  count = (request.getParameter("counter") == null) ? 0 : Integer.parseInt(request.getParameter("counter"));
2
Dead Programmer

int変数がクラスレベル変数(インスタンス変数)として宣言されている場合、デフォルトで0に設定されます。しかし、それはクライアントから送信された値が0かnullかを示しません。クライアントによって送信された値を初期化/設定するために呼び出すことができるセッターメソッドがある場合があります。その後、インジケーター値を定義できます。nullを示す負の値を指定できます。

1
Siri
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

1
chaitanya

おそらくブラウザは整数値の文字列表現を返しますか?実際、intをnullにすることはできません。 nullをチェックし、値がnullでない場合、String表現をintに変換できます。

0
Andriy Sholokh

intはnullにできません。 intに値を割り当てていない場合、デフォルト値は0になります。nullをチェックする場合は、宣言でintをIntegerにします。その場合、整数オブジェクトはヌルになる可能性があります。そのため、nullかどうかを確認できます。 javax bean検証でも、変数がIntegerとして宣言されるまで、@ NotNullアノテーションのエラーを取得することはできません。

0
chaitanya