Ich stoße zufällig auf einen Java-Code an meinem Arbeitsplatz. Hier ist das Szenario: Es gibt 2 Klassen - ClassA
und ClassB
.öffentliche statische endgültige Variable in einer importierten Java-Klasse
ClassA
hat nichts außer 4 öffentlichen statischen endgültigen String-Werte drin. Sein Zweck ist, diese Werte wie ClassA.variable
zu verwenden (frag mich nicht warum, es ist nicht mein Code).
ClassB
importiert ClassA
. Ich habe die String-Werte in ClassA
bearbeitet und kompiliert. Als ich lief ClassB
konnte ich sehen, dass es die alten Werte verwendete - nicht die neuen Werte. Ich musste ClassB
neu kompilieren, um neue Werte von ClassA
zu verwenden! (Ich musste andere Klassen neu kompilieren, die ClassA
importiert!)
Ist das nur wegen JDK 1.6 oder ich hätte früher ClassB
auch neu kompilieren sollen! Kläre mich auf. :)
also, Sie sagen, öffentliche statische final ist Kompilierzeitkonstante? Ich wusste das nicht. dachte, es war nur eine Konstante und kann nicht in der Laufzeit geändert werden! danke für Ihre Hilfe. –
Gut anwser. Wenn Sie sehen möchten, dass die Variable inline ist, können Sie javap verwenden, um zu sehen, wie die Klasse kompiliert wurde, z. "javap -c Flags". –