Um "if" uma linha

Gostaria de saber como faço para fazer if em uma linha, tentei fazer como mostra no código abaixo mas não consegui, será que alguém pode me ajudar?

String FONE = this.res.getString("fone")?null:"";

[quote=ricardoluizv]Gostaria de saber como faço para fazer if em uma linha, tentei fazer como mostra no código abaixo mas não consegui, será que alguém pode me ajudar?

String FONE = this.res.getString("fone")?null:"";

você está querendo dizer operador ternário certo??

String fone = this.res.getString("fone") !== null ? this.res.getString("fone") : "";

Tente converter isso para um if. O que vem antes da ? é a condição. Depois vem a primeira resposta, depois a segunda. No seu caso:

//Isso aqui
String FONE = this.res.getString("fone")?null:"";  

//Pode ser escrito assim
if (this.res.getString("fone")) {
   FONE = null;
} else {
   FONE = "";
}

Note que o a condição não faz sentido.

Sim, acho que sim, estou tentando fazer um operador ternário, mas não estou conseguindo fazer. Eu não posso deixar que a variável FONE receba null, para que eu não precisa fazer um IF e deixar o código mais bagunçado gostaria de filtar esse valor sem um uso do “IF” e sim deste operador.

Tentei executar o código abaixo mas não deu certo, apareceu “Ilegal start of expression”, o que eu posso fazer para funcionar?

String FAX = this.res.getString("fone")!== null?this.res.getString("fone"):"";

Como você faria com um if comum?

E o != é com um = só.

Faria assim:


String FONE="";
    if ( (this.res.getString("fone") == null) {
             FONE = "";
     }else{
            FONE = this.res.getString("fone");
     }

Oi,

Apenas por questão de performace/desempenho.

Neste if:

String FAX = this.res.getString("fone")!= null?this.res.getString("fone"):"";

Você faz uso da chamada getString(“fone”) 2 vezes. O correto seria:

String
ls_fone = this.res.getString("fone");
String FAX = ls_fone != null ? ls_fone : "";

Obs: Correção ao comparar diferença.

Tchauzin!

[quote=ricardoluizv]Faria assim:


String FONE="";
    if ( (this.res.getString("fone") == null) {
             FONE = "";
     }else{
            FONE = this.res.getString("fone");
     }

[/quote]

Oi,

Em relação a este código, a primeira condição == null é desnecessária. Note que sua variavel FONE já é iniciada com String vazia.

Sendo assim, o certo seria:

String FONE=""; if ( (this.res.getString("fone") != null) { FONE = this.res.getString("fone"); }

Sem a condição else.

Obs: Desculpa me meter Vini…

Tchauzin!

o correto é
o sinal de diferente no java é !=
e não
!==
dai o nosso amigo ai em cima se confunde!
ou outros que virão

A sim, fizemos isso só para um teste, mesmo assim, muito obrigado pelo conselho. Eu tentei fazer mas não obtive muito resultado, ele sempre mostra vazio, é como se fosse assim: String FONE = “”;

Será que alguém poderia me ajudar, segue o código que fiz abaixo:

String FONE = this.res.getString("fone") == null ? this.res.getString("fone"): " ";

Oi,

Tá… mais você errou na sua condição… o correto é:

String FONE = this.res.getString("fone") == null ? "" : this.res.getString("fone");

Tchauzin!

AHH! então quer dizer que o “?” é igual ao “if” e o “:” é igual ao “else” ?

Oi,

Exatamente!

Se for igual a null então ( ? ) “” senão ( : ) ;

Tchauzin!

[quote=ricardoluizv]Faria assim:


String FONE="";
    if ( (this.res.getString("fone") == null) {
             FONE = "";
     }else{
            FONE = this.res.getString("fone");
     }

[/quote]

Então.

  1. Tire condição do seu if e ponha antes do ? --> this.res.getString(“fone”) == null
  2. Tire o está sendo atribuído no interior do if e ponha depois do ? --> “”
  3. Tire o que está sendo atribuído no else e ponha depois dos : --> this.res.getString(“fone”)

Logo, seu if vira:

String FONE=this.res.getString("fone") == null ? "" : this.res.getString("fone");

O operador ternário “?” é uma coisa dos infernos. Seria muito mais fácil se fosse assim:

String s = if (a.equals (b)) { c } else  { d }; 

ou, pensando VB-listicamente,

String s = iif (a.equals (b), c, d);

Há outras linguagens (como Scala) que conseguem fazer isso numa boa.

1 curtida