[Pegadinha Basica] - Explicação lógica

Oi,

Apenas uma pegadinha. Alguém poderia explicar logicamente o motivo do código abaixo imprimir apenas _null e não TESTE_TESTE_TESTE_TESTE ?

[code]Integer teste = null;

System.out.println
(
“TESTE”+""
+“TESTE”+"
"
+“TESTE”+""
+“TESTE”
+teste == null
? “”
: "
"+teste
);[/code]

Tchauzin!

eh porque ele verifica se a string “TESTE_TESTE_TESTE_TESTE” é igual a null, como ela nao eh ele imprime apenas o _null.

tendeu?

[quote=mauricioadl]eh porque ele verifica se a string “TESTE_TESTE_TESTE_TESTE” é igual a null, como ela nao eh ele imprime apenas o _null.

tendeu?[/quote]

Oi,

Sim. Eu já sabia disso. Tu acredita que um código semelhante a este foi para produção e ocasionou muita bagunça (pra não dizer outra coisa)?

Tchauzin!

Que projeto é esse lina, em que você trabalha?
Tens pego umas “pegadinhas” por ai hein ? rs

como foi essa bagunça? gostaria de saber pra ficar esperto.

[]'s

[quote=nel]Que projeto é esse lina, em que você trabalha?
Tens pego umas “pegadinhas” por ai hein ? rs[/quote]

Oi,

Estamos com produto fechado em produção e estamos tendo um tempo para fazer uma varredura em toda codificação. Melhorando, aprimorando… etc… E sabe como é, cada código que aparece! Dá um susto! rsrs

Tchauzin!

[quote=mauricioadl]como foi essa bagunça? gostaria de saber pra ficar esperto.

[]'s[/quote]

Oi,

Isso estava num método que recebia 4 argumentos para montar o nome de um arquivo e grava-lo na maquina. Esse arquivo é usado por um módulo do sistema, e claro, este módulo estava fazendo uma comparação (IF) usando uma constante para comparar o nome do arquivo.

Tchauzin!

[quote=lina][quote=nel]Que projeto é esse lina, em que você trabalha?
Tens pego umas “pegadinhas” por ai hein ? rs[/quote]

Oi,

Estamos com produto fechado em produção e estamos tendo um tempo para fazer uma varredura em toda codificação. Melhorando, aprimorando… etc… E sabe como é, cada código que aparece! Dá um susto! rsrs

Tchauzin![/quote]

rsrs é de assustar ver algo desse tipo mesmo. Mas já vi bizarrices também.
Algo que eu vi, não era bizarro mas totalmente desnecessário, foi algo do tipo:

Integer i = Integer.parseInt(0);

Enfim né! Mas legal, se estão com tempo para revisão, é excelente.

legal este tópico…

essa pegadinha não é tão ‘pegadinha’ assim…
mas para iniciantes mesmo (não que eu não seje um!)

abraços

está ligado a como a JVM avalia as expressões (peço ajuda aos universitários, vinigodoy). seria a mesma coisa que:

if (color=red[/color] == null) {
return “”;
} else {
return “_”+teste;
}

[color=red]*: uma referencia de objeto em memória[/color], aqui teriamos um objeto em memória que não é nullo :slight_smile:

edit: sintaxe