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).

Avalie esse artigo

Relevância
Estilo/Redação

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 mensagens 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 mensagens dessa discussão

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

Receber mensagens dessa discussão

4 Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.