BT

Google Guava: O Canivete Suíço Para o Desenvolvedor Java

por Pedro Mariano em 15 Out 2010 |

Google Guava é mais um daqueles projetos que quebram um tremendo galho no dia a dia. O guava se resume a um conjunto de classes utilitárias que auxiliam, e muito, o desenvolvimento com a linguagem Java. Além de deixar seu código muito mais bonito, utilizar essa biblioteca pode evitar códigos repetitivos.

Para você que deseja utilizar a biblioteca basta ir ao site oficial, lá você encontra toda a documentação necessária para utilizar o guava.

Devido a grande quantidade de classes utilitárias irei mostrar exemplos das que mais me agradaram.Vamos ver alguns exemplos de utilização do guava:

Quantas vezes você já teve que verificar se uma String possui algum valor? Você lembra que  não basta verificar se ela está ou não vazia, antes disso é preciso verificar se ela está ou não nula:

boolean estaPreenchida = minhaString != null && minhaString.isEmpty();

Muitas vezes em nossos projetos essa verificação com String é algo extremamente comum, o que nos leva, muitas vezes a ter esses código em muitos lugares. Provavelmente você já deve ter escrito um método que verifica se a String é vazia ou nula para não precisar ficar utilizando duas verificações todas as vezes, porém, ao invés de escrever o guava já possui uma classe que faz isso para nós, vejamos:

boolean estaPreenchida = Strings.isNullOrEmpty(minhaString);

Outro método muito interessante da biblioteca é o readLines, que é bem semelhante ao do apache commons io porém oferece suporte a generics.

List<String> linhas = Files.readLines(arquivo, charset);

Você já precisou utilizar pré-condições? Algo como:  Se o nome não está preenchido não precisa continuar executando o método, quero que lançe uma exceção. Para isso temos que fazer um código parecido com esse:

if(Strings.isNullOrEmpty(nome)){

  throw new IllegalArgumentException();

}

E se eu precisar que além do nome, o endereço possua um comportamento parecido? Mais um if para a nossa felicidade! O guava introduz um conceito de pré-condições (Preconditions), onde eu faço algo semelhante com o que eu fiz no exemplo porém de uma maneira mais elegante onde próprio guava lança a exceção. 

Preconditions.checkArgument(Strings.isNullOrEmpty(nome));

Existem outro métodos como o .notNull ou o .checkStates na classe Preconditions que lançam exceções diferentes.

Outro método interessante do guava é o .contains() que verifica se um inteiro está em um array de inteiros:

boolean estaNoArray = Ints.contains(int[] array, int target)

Para aqueles que utilizavam o Google Collections uma novidade é que agora o projeto foi integrado com o Google Guava, ou seja, além desse métodos citados acima, utilizando o guava você ganha o Google Collections que já vêm embutido na biblioteca. 

Se você ainda não utiliza o Google Guava, bem, o que você está esperando? Essa é, sem dúvida, uma biblioteca que chama muita a atenção e foi desenvolvida com muita qualidade ( sua arquitetura teve a contribuição de Josh Block).

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Google Guava by Emílio Santiago do Carmo

Hauhauhua tá parecendo C#

Guava by Carlos Alberto

A biblioteca parece ser interessante sim...

Vou testar com certeza.

Google Guava by Paulo Gervásio

Seria interessante também adicionar algumas funcionalidades para o array, como por exemplo:

-push(Object value) => adiciona um elemento ao final do array
-pop() => remove o último elemento do array
-shift() => remove o primeiro elemento do array
-unshift(Object value) => adiciona um elemento no início do array
-add(int index,Object value) => adiciona um elemento no "meio" do array

abs

Apache by Victor Franzonatto

Reinventando a roda.

Porque será que ao invés de contribuir com o apache-commons que é mais antigo o google cria uma nova biblioteca????

Acho que quem comanda o google é o Pink e o Cérebro.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

4 Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT