2013-07-09 72 views
1

匿名類是這樣的:一個匿名類可以擁有多少個實例?

SenseOfLife _42 = new SenseOfLife() { 
    public int eval() { 
     return 42; 
    } 
    }; 

我不明白爲什麼這樣一個匿名類可以有實例的無限數量的(這是一個命題)。

雖然我定義了這個匿名類,它會自動創建一個實例並將其指定給變量_42。所以我只有一個實例,不能創建一個新的實例。

+3

這是什麼問題? –

+0

請在這個問題的正文中提出這個問題(不僅僅是標題)。 – BlackVegetable

+0

答案只有一個,在你的代碼中或者在for循環中n次 – nachokk

回答

4

您可以通過創建多個實例:

  • 執行的代碼不止一次相同的塊。
  • 克隆匿名類的實例。
+0

而且,反思?你可以把它添加到你的文章? – hexafraction

2

如果接口延伸Cloneable該類可以在技術上被克隆。

反射可能會得到一個新的實例。

如果在循環中調用相同的new SenseOfLife()構造函數,該構造函數將被編譯爲一個多次實例化的類。

1

我還沒有嘗試過,但很可能您可以使用反射創建其他實例,即instance.getClass().newInstance()

相關問題