Bonjour à tous,
Je rencontre un problème avec des constantes finales après la compilation des sources en une seule étape :
Soit les deux classes A et B définies comme suit :
Fichier A.java :
Fichier B.java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public class A { static final String S = "avant"; }
On compile tout ça et on exécute B :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public class B { public static void main(String args[]) { System.out.println(A.S); } }
javac A.java B.java
java B
Le résultat affiché sur la console est :
avant
On modifie A.java comme suit :
Fichier A.java :
On compile A.java qui est le seul modifié et on exécute B :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public class A { static final String S = "après"; }
javac A.java
java B
Le résultat affiché sur la console est toujours :
Alors qu’on pouvait s’attendre à obteniravantC'est franchement curieux...après
Merci par avance !
[1] Testé avec les JDK Oracle 6/7/8
Partager