Подтвердить что ты не робот

Если без трёхмерного оператора

До тех пор, пока я не искал сеть, оператор всегда имеет условие if и else, такое как a ? b : c. Я хотел бы знать, можно ли использовать термальный оператор if без else. Предполагая, что у меня есть следующий код, я хочу закрыть PreparedStatement, если он не равен null

(Я использую язык программирования Java.)

PreparedStatement pstmt;

//.... 

(pstmt!=null) ? pstmt.close : <do nothing>;
4b9b3361

Ответ 2

Просто напишите это?

if(pstmt != null) pstmt.close();

Это точная длина.

Ответ 3

Зачем использовать тернарный оператор, если у вас есть только один выбор?

if (pstmt != null) pstmt.close(); 

достаточно!

Ответ 4

Тернарный оператор if - это конкретный тернарный оператор. Единственный в своем роде.

Из Wiki:

В математике тройная операция является n-арной операцией с n = 3.

Это означает, что для вас требуются все 3 операнда.

Ответ 5

Тернарная операция называется тройной, поскольку она принимает 3 аргумента, если она принимает 2, это двоичная операция.

И как отмечено выше, это выражение возвращает значение.

Если вы опустите else, у вас будет ситуация undefined, в которой выражение не вернет значение.

Итак, как и в другом ответе, вы должны использовать оператор .

Ответ 6

Как уже упоминалось в других ответах, вы не можете использовать тернарный оператор для этого.

Однако, если вам понадобится, вы можете использовать Java 8 Optional и lambdas, чтобы включить эту логику в одно утверждение

Optional.of(pstmt).ifPresent((p) -> p.close())