我已經使用SWT/JFace實現了一個複雜的視圖,不幸的是我已經爲不同的元素使用了很多靜態成員。現在我想將這些元素重構爲實例變量,但也有很多外部類和方法依賴於這些元素。返回一個SWT/JFace視圖
例如,此視圖中的TreeViewer
被聲明爲靜態,並且我實現了一個簡單的靜態getTreeViewer
方法,該方法被稱爲例如,通過JFace Action,再次靜態。它運行良好。
所以我在考慮爲我的視圖類實現一種類型的吸氣方法,擴展了org.eclipse.ui.part.ViewPart
。我希望通過這種方式,如果需要,我可以將運行時Eclipse中此視圖的實例返回到外部類,並且以這種方式可以訪問先前靜態現實實例字段的實際值。
但是現在,沒有靜態字段和方法,我必須使用new關鍵字來調用非靜態方法,這顯然會導致NPE,因爲不會有任何createPartControl()
方法。或者我應該能夠以某種方式返回已經實例化的視圖?這是我缺乏的地方?對於整個View來說,返回方法應該如何,以便可以在實際狀態下訪問其內部?有沒有簡單的方法來做到這一點?謝謝!
忘記提及,但它可能是明顯的,這不是一個Singleton類的情況,所以沒有一個聲明字段中視圖,它持有它。但必須有一個實例,可以訪問,對吧? – DanglingElse