Archives de l’auteur : thierryler

Serializable et UID

Voici une petite précision qui n’a l’air de rien mais qui a son importance.

Quand vous avez une classe qui implémente l’interface Serializable, pensez à créer l’attribut « serialVersionUID« .

En général Eclipse vous invite à le faire et vous propose de le générer automatiquement (ne prenez pas la valeur bidon) via le quick fix.

Je vous renvoie vers le Javadoc : http://download.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html
Lire la suite

Sortie rapide des boucles

Je vous invite à programmer vos boucles, et plus spécifiquement vos conditions de test, pour sortir au plus vite des boucles.

Par exemple, dans le cas suivant :

1
2
3
4
5
6
7
boolean ok = false ;
for(Foo foo : foos) {
  if( foo.truc() ) {
     ok = true ;
  }
}
return ok ;

Dans ce genre de cas, pensez à mettre un « break » dans votre boucle, pour ne pas continuer à parcourir inutilement la liste, puisque la valeur est calculée et ne changera plus.

Lire la suite

Enum.valueOf

Voici un point rapide sur les enums et plus spécifiquement sur les méthodes valueOf et values.

Partons d’une enum simple :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public enum AnimalEnum {
 
    CHIEN("Wouaf"),  
    CHAT("Miaou"),  
    VACHE("Meuh"),  
    SERPENT("Kss");
 
    final private String onomatopee;
 
    AnimalEnum(String onomatopee) {
         this.onomatopee = onomatopee;
    }
 
    public String getOnomatopee() {
         return onomatopee;
    }
}

Vous noterez bien au passage que l’attribut « onomatopee » a été déclaré final et que ce n’est pas une erreur, à condition qu’il ne soit affecté que dans un seul constructeur.
Lire la suite

Des itérators et des boucles

Nos open-spaces sont souvent lieux de discussion à propos des parcours de liste, notamment lorsqu’on ne dispose que de l’itérator sur la liste comme c’est parfois le cas dans certaines lib.

Pour illustrer tout ça, prenons en compte la liste d’amis, définie de la manière suivante dans un test (version simplifiée).

1
2
3
4
5
6
7
8
9
10
11
private List<string> amis;
 
@Before
public void doBefore() {
    amis = newArrayList(); // cf. tuto Google-Collections
    amis.add("Lucie");
    amis.add("Jean");
    amis.add("Paul");
    amis.add("Marion");
    amis.add("Thierry");
}</string>

Lire la suite