31/05/2010
Point théorique Java : Assert
- l'activation des asserts se fait au moment du lancement d'un programme en utilisant le paramètre -ea (pour enable assertion)
- Lorsque les assertions sont désactivées, les expressions passées aux asserts ne sont pas évaluées
...
int i = 0;
assert (i=4)==4;
// ici i vaut 4 si les assertions sont activées et 0 sinon
...
- Attention : ceci est un cas particulier très étrange :
Lorsque l'on utilise un objet avant d'avoir initialisé sa classe, il doit se comporter comme si les assertions étaient actives.
class P{
static {Q.method();}
}
class Q extends P{
static void method(){
int i = 0;
assert (i=4)==4;
System.out.println(i);
}
}
Ici l'initialisation de Q entraine celle de P qui appelle Q.method() qui est donc exécutée avant que Q soit initialisée.
Que les assertions soient activées ou non, le println affichera 4;
12:12 Publié dans Programmation | Lien permanent | Commentaires (0) | Tags : java1.5, point théorique
Les commentaires sont fermés.