Zdarza się, że natknąłem się na kod Java w moim miejscu pracy. Oto scenariusz: istnieją 2 klasy - ClassA
i ClassB
.publiczna statyczna zmienna końcowa w zaimportowanej klasie java
ClassA
ma nic oprócz 4 publicznych statycznych wartości końcowych ciągów wewnątrz niego. Jego celem jest użycie wartości takich jak ClassA.variable
(nie pytaj mnie dlaczego to nie mój kod).
ClassB
import ClassA
. Edytowałem wartości ciągu w ClassA
i skompilowałem je. Po uruchomieniu ClassB
mogłem zobaczyć, że używało starych wartości - a nie nowych wartości. Musiałem przekompilować ClassB
, aby użyć nowych wartości z ClassA
! (Musiałem przekompilować inne klasy, które importują ClassA
!)
Czy to tylko dlatego, że JDK 1.6 lub powinienem wcześniej wiedzieć, aby ponownie skompilować ClassB
również! Oświeć mnie. :)
więc mówisz, że publiczne statyczne końcowe to czas kompilacji? tego nie wiedziałem. myślał, że to tylko stała i nie może być modyfikowana w czasie wykonywania! dzięki za pomoc. –
Dobry anwser. Jeśli chcesz zobaczyć, że zmienna jest wstawiona, możesz użyć javap, aby zobaczyć, jak klasa została skompilowana, np. "flagi javap -c". –