我在寫這個代碼這個裸露行爲this.new和內部類
list.add(this.new SelectableItem(element));
或
list.add(new SelectableItem(element));
我的問題是:都是一樣的東西?
我在寫這個代碼這個裸露行爲this.new和內部類
list.add(this.new SelectableItem(element));
或
list.add(new SelectableItem(element));
我的問題是:都是一樣的東西?
是的,它們是相同的。
something.new InnerClass(...)
被用於創建一個內部類,其中something
是取值爲到外部類的實例的引用的表達式的一個實例的最一般的語法(記住每內部類的實例有到外部類的引用實例)。
當something.
被省略,即new InnerClass(...)
,而你恰好是在外部類的一個實例方法,那麼它隱含意味着this.new InnerClass(...)
,隨便怎麼樣,當你寫的實例變量或方法調用,而不明確地訪問它通過這意味着this.
(someInstanceVariable
含蓄地表示this.someInstanceVariable
)。
他們基本上是因爲SelectableItem
同樣是內,非靜態類到GuiSelectionList
和你從GuiSelectionList
類實例化它。
看到這個相關的SO question about "object.new"。
yes;但習慣上忽略'this.',只有'outer'不是'this',我們纔會'outer.new' – ZhongYu