我希望能夠在程序中調整點擊間隔,如果用戶希望這樣做,那麼類ClickAdjustmentFrame
將被實例化。非實例化類中的靜態變量是否會通過調用Toolkit來初始化?
在唯一可以更改其值的類中初始化CLICK_FREQUENCY
似乎是明智的做法。所以,該類這樣開始的:
public class ClickAdjustmentFrame {
static int CLICK_FREQUENCY = ((Integer)Toolkit.getDefaultToolkit()
.getDesktopProperty("awt.multiClickInterval"));
由於該類並不總是實例化,該類現在從GUI類,在這裏我提出問題的語句導入的CLICK_FREQUENCY
值。 (即,GUI現在是這樣開始的:)
public class GUI {
static int CLICK_FREQUENCY = ((Integer)Toolkit.getDefaultToolkit()
.getDesktopProperty("awt.multiClickInterval"));
但是調試過程中進行改變,之前,它似乎是在調用Toolkit
正在取得哪怕ClickAdjustmentFrame
沒有被實例化。起初這並不奇怪。然後我開始質疑設計,並將呼叫轉到Toolkit
到GUI。
它不會在我的應用程序方面的事情了,但備案和教育目的,如果Toolkit
呼叫作了無處,豈不的CLICK_FREQUENCY
值進行計算,並提供給包的其餘部分即使類ClickAdjustmentFrame
(如下所示)未被實例化?
public class ClickAdjustmentFrame {
static int CLICK_FREQUENCY = ((Integer)Toolkit.getDefaultToolkit()
.getDesktopProperty("awt.multiClickInterval"));
...
我知道我可以在非實例化類調用一個static
方法(和這樣做的相當頻繁),但是這是關於static
變量通過一個static
方法在其他地方調用初始化。
究竟什麼是非常基本的原則適用於此?是否所有類的所有static
成員都可用於包中的其他類?
也許更好的問題是:是不是更明智的(更好的設計)將呼叫轉移到Toolkit
回到ClickAdjustmentFrame
,唯一的類,其中的CLICK_FREQUENCY
值可以改變?
- 該鏈接非常好。謝謝。這確實是一個非常基本的問題,不是。很明顯,現在我已經閱讀了鏈接。 – DSlomer64 2015-03-02 23:07:11