2015-10-28 2 views
1

Я пытаюсь создать переменную и присвоить значение (если оно существует), иначе присвоить значение по умолчанию (короткой рукой, как var a = b || c; в JavaScript)Есть ли Java-эквивалент JavaScript var a = b || с

public Object a = b || new Object(); 

Возможно ли это?

+0

этот [ответ] (http://stackoverflow.com/a/5223065/5090771) может помочь – WhiteHat

+0

OP запрашивал эквивалент кода на Java. – Andy

+0

Нет, я бы просто выполнил проверку 'if' и не создавал по умолчанию. – 3kings

ответ

6

Вероятно, тройной оператор будет полезен:

Object a = b != null ? b : new Object(); 

Если b не null, то a будет назначен b, в противном случае он будет назначен new Object().

+0

Спасибо, что имеет смысл –

4

Нет прямого эквивалента.

Самый простой способ будет:

public Object a = b == null ? new Object() : b; 

Обратите внимание, что с Java 8, если b были определены как Optional<Object> (если нет, то вы всегда можете превратить его в Optional с помощью Optional.ofNullable(b)), вы можете использовать orElseGet и написать:

public Object a = b.orElseGet(Object::new); 

, который имитирует синтаксис JavaScript.

+0

Полезно знать о Дополнительном спасибо! –