Pérolas do mundo Java

August 10, 2008

Pérola 1

Essa é na verdade um par de pérolas.
Boolean.FALSE.toString ().toUpperCase ().equals ( meuObjeto.isControlado() )
Quando vi o código acima, já achei ridículo o fato do programador usar a expressão Boolean.FALSE.toString().toUpperCase() apenas para gerar uma string “FALSE”. Poderia ter sido mais simples escrever
"FALSE".equals(meuObjeto.isControlado())
Provavelmente o desenvolvedor queria se prevenir. Vai que false resolve mudar de nome no meio do caminho! E daí eu me perguntei: porque ele está testando string? Daí encontrei a seguinte função:
 public String isControlado () {
    if ( this.getElementos () != null ) {
        if ( this.getElementos ().size () > 0 ) {
            return "TRUE";
         }
        return "FALSE";
    }
    return "FALSE";
}
Perfeito. Porque usar lógica booleana?

Pérola 2

public List procuraPorExemplo(int arg0, boolean arg1){
    return super.procuraPorExemplo(arg0, arg1);
}

Pérola 3: sem comentários

public static boolean verificaAMaiorB(int a, int b) {
        boolean resultado = false;
        if (a > b) {
            resultado = true;
        }
        return resultado;
    }

Pérola 3

if ( objeto != null ) {
    lista = procura( objeto );// XXX
} else {
    lista = procura ( null );
}

Pérola 4

if ( comandoEscala.equals ( "alterar" ) == Boolean.FALSE ){
   ....
}

tags: , ,
posted in Desenvolvimento by Miguel Galves

Follow comments via the RSS Feed | Leave a comment | Trackback URL

  • http://lpereira.wordpress.com Luís Guilherme

    A Pérola 2 eu já fiz em MC600. Agora a segunda pérola 3 está fenomenal!!! hahahaha

  • http://dx7lab.com Rafael Dx7

    e eu que pensei já ter visto de tudo nessa vida programadora… rsrsrs

  • http://1up4dev.org Roger Leite

    Huhuahua muito bom !

    Das pérolas as que mais encontro aqui são 1 e 3 … Principalmente dentro de Taglib ! Err …

    sucesso!

  • Mauricio

    Muito bom! Essa vo guarda nas pérolas, olha que ja nao sao poucas! abraços!

  • http://thiagoarrais.com Thiago Arrais

    Cara, você tem muita “sorte” de esbarrar com essas coisas.

    De vez em quando ainda encontro um if (liberado == true) também. Ainda não consegui entender o que há de errado com if (liberado)?

  • Miguel

    Thiago,

    não existe nada de errado com if(liberado). Existe algo de errado com quem escreve if(liberado==true).

    Btw, uma justificativa que já me deram pro uso da segunda forma é que isso deixa o código mais legivel………………..

  • http://marcospereira.wordpress.com Marcos Silva Pereira

    É nessas horas que eu penso: simplesmente não adianta colocar o escambau a quatro na linguagem para impedir que programadores escrevam lixo! Vcs reclaram de “if(liberado == true)”? Pois eu tenho que reclamar de “if(true)”.

    Abraço…

  • http://programandosemcafeina.blogspot.com Tiago Albineli Motta

    A pérola 2 nem é tão ruim assim. Se o método “procuraPorExemplo” da classe mãe for protected, e deseja-se que este método seja público na classe “filho”, o código faz todo sentido. Não consigo achar um exemplo razoável para a aplicação disso, mas ao menos não é desnecessário.

  • http://bpfurtado.livejournal.com/ Bruno

    O que “Java” tem com a paçoca??? O programadores ‘ferais’ que escreveram isto vão contruir tais pérolas em qualquer linguagem que colocarem em sua frente…

    Para quem não conhece: http://thedailywtf.com

  • Miguel

    O que Java tem a ver com a coisa? Sera que o simples fato de estas pérolas terem sido encontradas num projeto Java e serem escritas em Java não é suficiente? Ou será que eu deixei a entender que pérolas apenas são produzidas em Java? Bruno, deixe de ser tão garoto propaganda, ninguém aqui esta desmerecendo sua amada, apenas mostrando coisas que nossos colegas escrevem. E que jogue a primeira pedra aquele que nunca escreveu uma pérola, em qualquer que seja a linguagem.

  • http://www.twitter.com/hardfiles Edward

    Eu tenho um punhado de pérolas que encontrei em códigos de colegas aqui do serviço. Segue a minha lista, e sinta-se a vontade para incluí-las no teu post:

    1. String str = new String(“MEMORANDO”);

    2. String str = “Teste”; String str2 = str.toString();

    3. String st1 = “Teste1″; String st2 = “Teste2″;

      if (st1 != st2) { …. }

    4. NENHUMA das classes onde o método equals() foi sobreescrito possui um correspondente método hashCode().

  • otávio

    A 2, 3a e 3b acontecem direto comigo, principalmente quando faço o algoritmo por “rascunhos”… eu e o pessoal nós esquecemos de tirar as redundâncias do código.

blog comments powered by Disqus

Switch to our mobile site

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org