Существует функция get(), которая возвращает значение, если оно есть в ArrayDeque, иначе возвращает null i.e x может быть некоторым значением или null. Если get() возвращает x, то функция B() должна выполнять некоторые вычисления, иначе ничего не должно было бы делать.Если используется функция, которая может возвращать значение null
T get()
{
//compute x
return x;
}
void B()
{
int z;
if(y.get()!=null)
{
z=y.get(); // gives null pointer exception
.....
}
}
Проблема заключается в том, что y.get() уже возвращает значение, которое не назначено ни одной переменной, таким образом, дает исключения нулевого указателя. Если я использую что-то вроде if((z=y.get()) != 0)
, он дает исключение в случаях, когда x равно null. Как я могу достичь этой функциональности?
Как вы можете вернуть null и назначить его переменной int z ?? Его несоответствие типа. – Muse
Ни одна из написанных вами версий не должна бросаться, если только это не '' get', которое выбрасывает. Вы уверены, что ищете правильную часть своего кода? – Mat
Вот почему я поставил эту регистрацию, если состояние. –