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).
Comentários da comunidade
Google Guava
by Emílio Santiago do Carmo /
Guava
by Carlos Alberto /
Google Guava
by Paulo Gervásio /
Apache
by Victor Franzonatto /
Google Guava
by Emílio Santiago do Carmo /
Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!
Hauhauhua tá parecendo C#
Guava
by Carlos Alberto /
Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!
A biblioteca parece ser interessante sim...
Vou testar com certeza.
Google Guava
by Paulo Gervásio /
Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!
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 /
Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!
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.