Как проверить, является ли 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