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:"";
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.
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.