Как проверить, является ли int значением null
У меня есть объект с именем Person
.
в нем есть несколько атрибутов:
int id;
String name;
i задайте объект person как Person p = new Person(1,"Joe");
.
1.) Мне нужно проверить, не объект ли null; Правильно ли выполняется следующее выражение:
if (person == null){
}
Or
if(person.equals(null))
2.) Мне нужно знать, содержит ли идентификатор Int.
if(person.getId()==null){}
Но java не позволяет этого. Как я могу выполнить эту проверку?
Ответы
Ответ 1
An int
не является нулевым, он может быть 0
, если не инициализирован.
Если вы хотите, чтобы целое число было равным нулю, вам нужно использовать Integer
вместо int
.
Integer id;
String name;
public Integer getId() { return id; }
Кроме того, выражение if(person.equals(null))
не может быть истинным, потому что если person
равно null, тогда будет выведена a NullPointerException
. Итак, правильное выражение if (person == null)
Ответ 2
примитивы не имеют нулевого значения. default имеет для int значение 0.
if(person.getId()==0){}
Значения по умолчанию для примитивов в java:
Data Type Default Value (for fields)
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
boolean false
Объекты имеют значение null в качестве значения по умолчанию.
Строка (или любой объект) --- > null
1.) Мне нужно проверить, не объект ли null; Правильно ли выполняется следующее выражение:
if (person == null){
}
вышеуказанный фрагмент кода проверяет, является ли человек нулевым. вам нужно сделать
if (person != null){ // checks if person is not null
}
и
if(person.equals(null))
Приведенный выше код будет генерировать исключение NullPointerException, когда человек имеет значение null.
Ответ 3
Примитив int
не может быть нулевым. Если вам нужно null, используйте Integer
вместо этого.
Ответ 4
1.) Мне нужно проверить, не объект ли null; Правильно ли выполняется следующее выражение:
if (person == null) { }
Да. Так вы проверяете, является ли объект null
.
2.) Мне нужно знать, содержит ли идентификатор Int.
if (person.getId() == null) {}
НЕТ Поскольку id
определяется как примитивный int
, он будет инициализирован по умолчанию с помощью 0
, и он никогда не будет null
. Нет необходимости проверять примитивные типы, если они равны нулю. Они никогда не будут нулевыми. Если вы хотите, вы можете сравнить с значением по умолчанию 0
как if(person.getId()==0){}
.
Ответ 5
Вам нужно получить доступ к вашим атрибутам класса.
Чтобы получить доступ к этим атрибутам, вы должны сделать:
person.id
person.name
где
человек
- это экземпляр вашего класса Person.
Это можно сделать, если доступ можно получить, если нет, вы должны использовать сеттеры и геттеры...
Ответ 6
Просто повторяя очевидное здесь, класс Integer позволяет проверять обнуляемость значения Integer или int (благодаря автобоксу)
Ответ 7
В Java нет нулевых значений для примитивных типов данных.
Если вам нужно проверить Null, используйте Integer Class вместо примитивного типа. Вам не нужно беспокоиться о разнице типов данных. Java преобразует данные типа int примитива в Integer.
Когда речь идет о памяти, Integer занимает больше памяти, чем int. Но с разницей в распределении памяти ничего не нужно учитывать.
В этом случае вы должны использовать Inter вместо int
Попробуйте приведенный ниже фрагмент и посмотрите пример для получения дополнительной информации,
Integer id;
String name;
//Refer this example
Integer val = 0;
'
'
if (val != null){
System.out.println("value is not null");
}
'
'Также вы можете назначить Null, как показано ниже,
val = null;
Ответ 8
Вы можете использовать
if (person == null || String.valueOf(person.getId() == null))
в дополнение к регулярному подходу
person.getId() == 0