2010-05-06 35 views
6

作爲擴展問題「Modify/view static variables while debugging in Eclipse」,我希望能夠在Eclipse中調試時修改靜態變量。對於實例和局部變量,我可以在Eclipse的「變量」視圖中選擇變量,並使用上下文菜單「更改值...」更改值。在Eclipse中調試時修改靜態變量

對於任意靜態變量,這是不可能的,因爲它們不出現在「變量」視圖中。

我的嘗試:

  1. 如果選擇從三角形菜單中的「Java /查看靜態變量」中的「變量」視圖中,可以查看和修改在列出的變量的靜態成員變量「變量視圖「。但是,我沒有找到如何訪問實例未出現在「變量視圖」中的類的靜態成員。
  2. 您當然可以將一個靜態成員作爲表達式輸入到「表達式視圖」中(使用完全限定名稱)。然後您可以看到該值,但「表達式視圖」沒有修改該值的選項(即使表達式爲字段,它也允許修改表達式的成員,但不允許修改表達式本身的成員)。

所以,如果我有這樣一個布爾MyClass.disableAllBugs一個靜態變量,有沒有辦法在調試過程中改變MyClass.disableAllBugs?另外:我意識到,即使有公開的可變靜態字段(即可變全局變量)也是非常糟糕的風格。但是有些代碼庫有它,然後在調試時修改它有時很有用。

回答

6

您可以編寫一個臨時行SomeClass.myStaticVar = newValue;,選擇它,右鍵單擊並「執行」它。

+0

好戲。我有時會這樣做,以便在調試時手動調用方法(例如printStackTrace()作爲例外)。但是在這方面我沒有想到它。 – sleske 2010-05-06 09:14:37

+0

如果它是一個私人靜態字段呢? – RAY 2011-03-23 02:36:25

+0

@RAY只是想確認這也適用於私人靜態字段。 – nerdherd 2013-09-26 15:54:10