Как проверить, является ли int не нулевым или пустым? - PullRequest
14 голосов
/ 29 сентября 2010

Я действительно не знаю, возможно ли это или нет. Но я поражаюсь в месте, где я хочу проверить значение int, равное null или нет, для вызова различных методов.

Есть ли способ сделать это?

На самом деле, переменная приходит из браузера со значением null. Я не могу изменить объявление int на Integer. Потому что это имеет свои последствия.

Есть предложения?

Ответы [ 8 ]

32 голосов
/ 29 сентября 2010

int переменные не могут быть null

Если null необходимо преобразовать в int, то именно преобразователь решает, следует ли установить 0, исключение исключенияили установите другое значение (например, Integer.MIN_VALUE).Попробуйте подключить свой собственный конвертер.

3 голосов
/ 11 октября 2015

Я думаю, что вы можете инициализировать переменные значением как -1, потому что если переменные типа int не инициализированы, они не могут быть использованы. Если вы хотите проверить, не является ли это значение, которое вы хотите, вы можете проверить, если это -1.

2 голосов
/ 29 сентября 2010

Я думаю, вы спрашиваете о таком коде.

int  count = (request.getParameter("counter") == null) ? 0 : Integer.parseInt(request.getParameter("counter"));
1 голос
/ 08 августа 2016
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);
    }
}

Выход: 0 ноль -1

1 голос
/ 29 сентября 2010

если ваша переменная int объявлена ​​как переменная уровня класса (переменная экземпляра), то по умолчанию она будет равна 0. Но это не означает, что значение, отправленное клиентом, было 0 или нулевым возможно, у вас может быть метод установки, который может быть вызван для инициализации / установки значения, отправленного клиентом. тогда вы можете определить значение вашего индикатора, может быть какое-то отрицательное значение для обозначения нулевого значения.

0 голосов
/ 08 августа 2016

int не может быть нулевым. Если вы не назначаете какое-либо значение для int, значением по умолчанию будет 0. Если вы хотите проверить на null, сделайте int как Integer в объявлении. Тогда объект Integer может быть нулевым. Итак, вы можете проверить, где он нулевой или нет. Даже при проверке бина javax вы не сможете получить ошибку для аннотации @NotNull, пока переменная не будет объявлена ​​как Integer.

0 голосов
/ 22 августа 2013

Целое число не может быть нулевым, но есть действительно простой способ сделать то, что вы хотите сделать.Используйте оператор if-then, в котором вы проверяете целочисленное значение по всем возможным значениям.

Пример:

int x;

//Some Code...

if (x<=0 || x>0){
    //what you want the code to do if x has a value
} else {
    //what you want the code to do if x has no value 
}

Отказ от ответственности: Я предполагаю, что Java автоматически не устанавливает значения чисел в0, если не видит значения.

0 голосов
/ 29 сентября 2010

Возможно, браузер возвращает строковое представление некоторого целочисленного значения? На самом деле int не может быть нулевым. Может быть, вы можете проверить на нулевое значение, если значение не равно нулю, то преобразовать строковое представление в int.

...