IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Introduction aux API utilitaires fournies par Google Guava,
Un tutoriel de Thierry Leriche-Dessirier

Le , par thierryler

0PARTAGES

2  0 
Bonjour à tous,

Je vous propose une série d'articles consacrés à la bibliothèque Guava, by Google, dont voici le 4ème épisode : les utilitaires.

http://thierry-leriche-dessirier.dev...a/utilitaires/

Comme toujours, les remarques sont les bienvenues.

Bonne lecture

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de adiGuba
Expert éminent sénior https://www.developpez.com
Le 10/10/2013 à 9:36
Salut,

A noter que certaines de ces fonctionnalités ont été intégré dans Java 7, dans la classe java.util.Objects comme avec Objects.equals() et Objects.hash() pour générer les equals()/hashCode(), ou Objects.requireNonNull() pour générer les erreurs en cas de null...

Enfin Java 8 intégrera une classe Optional

a++
1  0 
Avatar de bulbo
Rédacteur https://www.developpez.com
Le 25/10/2013 à 15:50
C'est fort, tu connais l'API Guava mais pas l'API standard ni les règles associées aux opérateurs logique du langage.

Ca, ça suffit par exemple:

Code : Sélectionner tout
((x == null) || x.isEmpty())
Et le pire c'est que parfois on se retrouve avec un import d'une librairie complète genre guava (attention je ne remets pas en cause la qualité de ladite librairie hein) pour 2 utilisations en tout et pour tout d'un Strings.isNullOrEmpty(xxx).

Bon, dans mon vécu c'était commons.lang.StringUtils.isEmpty() .. 2 appels dans une seule classe de tout le projet .. et utilisé dans une applet donc downloadée à chaque fois.. bravo

Bulbo
1  0 
Avatar de rg77140
Membre confirmé https://www.developpez.com
Le 10/10/2013 à 0:18
Bonjour,

C'est un article assez complet sur Guava. Il serait peut-être intéressant de montrer ce que ça donne chez la "concurrence" (commons3 et lombok notamment).

La seule chose qui ne me convainc pas vraiment sont les Optional. Je n'aime pas trop me trimbaler dans toutes les couches de mon application des interfaces qui ne font pas parties du JDK... Si un jour on décide de changer de méthode et de se passer des Optional, il faudra revenir sur toutes les signatures des méthodes de l'application quasiment... J'ai pas de retour sur le long terme mais à première vue ça ne me parait pas une bonne idée.

Quelques coquilles dans l'article. Tous les morceaux de code apparaissent en double. Il y a un TODO dans les remerciementx. Le lien pour commenter ne pointe pas sur le bon topic.

Romain.
0  0 
Avatar de thierryler
Rédacteur https://www.developpez.com
Le 10/10/2013 à 9:11
Merci pour cette réponse.

C'est un article assez complet sur Guava. Il serait peut-être intéressant de montrer ce que ça donne chez la "concurrence" (commons3 et lombok notamment).
Simplifier le code de vos beans Java à l'aide de Commons Lang, Guava et Lombok : http://thierry-leriche-dessirier.dev...-guava-lombok/

La seule chose qui ne me convainc pas vraiment sont les Optional. Je n'aime pas trop me trimbaler dans toutes les couches de mon application des interfaces qui ne font pas parties du JDK... Si un jour on décide de changer de méthode et de se passer des Optional, il faudra revenir sur toutes les signatures des méthodes de l'application quasiment... J'ai pas de retour sur le long terme mais à première vue ça ne me parait pas une bonne idée.
L'utilisation des Optional (Option en Scala) est très importante pour la JVM. Personnellement, je trouve qu'elle simplifie beaucoup le code, en particulier dans un contexte multi couche. Je suis néanmoins d'accord avec ta remarque qui précise que ce n'est pas un objet du JDK...

Quelques coquilles dans l'article. Tous les morceaux de code apparaissent en double. Il y a un TODO dans les remerciementx. Le lien pour commenter ne pointe pas sur le bon topic.
Je confirme. Je m'en occupe asap.
0  0 
Avatar de thierryler
Rédacteur https://www.developpez.com
Le 10/10/2013 à 9:46
Enfin Java 8 intégrera une classe Optional
Le même nom de classe ;-) ça permettra une transition en douceur.
0  0 
Avatar de adiGuba
Expert éminent sénior https://www.developpez.com
Le 10/10/2013 à 10:28
Citation Envoyé par thierryler Voir le message
Le même nom de classe ;-) ça permettra une transition en douceur.
Par contre je ne sais pas si l'API est la même.
Pour info : http://download.java.net/jdk8/docs/a.../Optional.html

a++
0  0 
Avatar de thierryler
Rédacteur https://www.developpez.com
Le 10/10/2013 à 20:41
Ça devrait être bon là. Je ne sais pas ce qui a pu se passer dans l'export de l'article.
0  0 
Avatar de Derf59
Membre actif https://www.developpez.com
Le 18/10/2013 à 9:42
Petite astuce, plutôt que de tester la chaine null quand on écrit du code
str != null && str.equals("abcd"

c'est plus simple de l'écrire
"abcd".equals(str)

Java fait alors le travail tout seul
0  0 
Avatar de thierryler
Rédacteur https://www.developpez.com
Le 18/10/2013 à 10:22
@Derf59: Non non non, ce n'est pas du tout pareil ! Le résultat semble le même mais la mécanique ne l'est pas. Et je ne parle même pas de l’aspect sémantique.
0  0 
Avatar de bulbo
Rédacteur https://www.developpez.com
Le 18/10/2013 à 11:27
Pour moi le résultat fait qu'un peu plus que sembler être pareil non ? Ca fait le boulot.

Après s'inquiéter de l'aspect sémantique dans un cas aussi basique, on est pas loin de la drosophilie non ?

Enfin je dis ça, on est vendredi aussi on a le droit d'être taquin.

Bulbo
0  0