Guava è una
collezione di librerie Java non presenti in
Google Collection Library anche se quest'ultima presto sarà incluso nel progetto. Al momento sono solo tre i
namespace inclusi in tale progetto:
com.google.common.primitives,
com.google.common.io e
com.google.common.util.concurrent. Queste librerie arricchiscono quelle Java con molte classi e API create dal gruppo di sviluppatori Google e utilizzate in molti dei loro progetti realizzati con tale linguaggio.
Spulciando un'
overview vediamo un po' di feature, che possono tornare utili ai nostri progetti. Un esempio è l'introduzione della classe
CharMatcher per manipolare caratteri all'interno di una stringa come la funzione
CharMatcher.is('-'). Le stringhe sono sempre manipolabili con la classe
Joiner, che può legare una sequenza di numeri separati da uno o più caratteri scelti con la seguente riga di codice:
String s = Joiner.on(", ").join(numbers);
Per la separazione di stringe troviamo la classe
Splitter in grado di separare parti di stringa da un testo complesso molto meglio di quanto faccia la funzione
split() di Java:
Iterable<String> pieces =
Splitter.on(',').split("trivial,example")
Per ciò che riguarda l'I/O, le classi
ByteStreams,
CharSequence e
Files promettono di leggere le righe di un file in modo molto stringato. Sotto infatti vediamo un esempio di routine in grado di contare le righe di un file:
int count = Files.readLines(
new File("/path/to/file"), Charsets.UTF_8,
new LineProcessor<Integer>() { int count = 0;
public boolean processLine(String line) { count++;
}
public Integer getResult() { return count; } });
Anche le
primitive non sono esenti da novità con l'introduzione di classi come
Ints,
Longs o
Bytes.
int[] nums = ...;
List<Integer> list = Ints.asList(nums);
In attesa della versione 1.0, il rimando è ai
javadoc ufficiali.