Operadores Terbnarios

O que siginifica o ? e : em java? Sei que seria um if e else, mas neste caso como ficaria?

Date saida = this.saida == null ? this.saida : new Date();
long tempoDecorrido = saida.getTime() - chegada.getTime();

Acho que você está trocando a saída do ternário. Deveria ser: se this.saida for igual a null, então retorne new Date(), senão retorne o próprio this.saida. Se não fizer assim, ocorrerá um NullPointerException na linha seguinte, ao executar: saida.getTime()

O par ? : forma o operador ternário, como você percebeu. A sintaxe é assim:

<condição> ? retornoCasoVerdadeiro : retornoCasoFalso

Ao invés de fazer isso:

boolean condicao = ...;
final int x; // declaração apenas, sem atribuição
if (condicao) {
    x = 1;
} else {
    x = 2;
}

Você pode fazer isso:

final int x = condicao ? 1 : 2;
1 curtida

nao o codigo esta funcionando pois a minha variavel saida esta criada caso ela seja nula recebe a data.

1 curtida

Obrigada pela informação era exatamente isso que estava querendo saber pois não lebrava como era a sintaxe