2013-03-13 2 views
0

Я ищу более эффективный способ выполнить следующее действие, где я добавляю возвращаемое значение метода в массив. Однако, если return null, я хочу выполнить другое действие и не изменять массив.Условные проверки и назначение Java

Object[] myVal = new Object[10]; 
Object temp; 
temp = myFunction(); 
if(temp != null) { 
    myVal[count++] = temp; 
} else { 
    System.Exit(); 
} 

Где я хочу назначить переменную для возвращения метода, но обеспечивают «инлайн» проверить, чтобы выполнить другое действие, если возвращаемое значение равно нулю.

Что-то вроде:

myVal = (myFunction() != null) ? [output of expression]: System.Exit(); 

Есть ли способ, как это?

+0

Что неэффективно относительно вашего текущего кода? – NPE

+0

По крайней мере, часть 'нового объекта'. – Axel

+0

Я пытаюсь избежать создания экземпляра объекта temp – BradStevenson

ответ

1

Попробуйте это:

if ((myVal = myFunction()) == null) System.exit(0); 
else // do your work 

Примечание: Использование трехкомпонентных операторов не рекомендуется, так как код становится трудно читать.

+0

, если myVal был массивом, который я добавляю возвращаемое значение в конец, добавит ли это значение null? Я в идеале хочу проверить значение до того, как я добавлю его в конец массива. – BradStevenson

+0

Обычно используйте temp вместо myVal ... if ((temp = myFunction())! = Null) myVal [index] = temp; – Sajmon

6
myVal = myFunction(); 
if (myVal == null) System.exit(0); 

Нет необходимости в переменной темпа.

+0

Я думаю, что OP хочет избежать назначения переменной, когда метод возвращает 'null'. Конечно, если он действительно выполняет 'System.exit (0)', это не имеет значения. – GriffeyDog

+0

@GriffeyDog «Избегайте задания?» Разве это не означает, что он привязан к нулю, чего он все равно пытается избежать? – Doorknob

Смежные вопросы