2011-10-14 39 views
3

我在我的應用程序尋找內存泄漏和我使用的分析器告訴我去尋找這些類型的引用,但我不知道我要找的。有人可以解釋一下嗎?什麼是合成的反向引用內部類

感謝,

埃利奧特

回答

7

你可以合成反向引用外部類,而不是內部類的實例。

例如

class Outer { 

    class Inner { 
    } 

    static class Nested { 
    } 
} 

在這個例子中,Inner有一個對Outer類的引用。嵌套不。如果Outer很大,這可能意味着你可以抓住一個你不需要的物體。

總之,如果你可以讓內部類static

3

我不認爲這是合成參考的內部類這樣的事情。我認爲探查談論引用內部類其外部類。這些都是當你有這樣的代碼創建:

class Outer { 
    class Inner { 
    } 
} 

在上面的代碼中,Inner每個實例都有一個與之關聯的Outer一個實例。該關聯是通過Inner包含對Outer基準的隱藏合成部件字段保持。

如果代碼是變化像這樣:

class Outer { 
    static class Inner { 
    } 
} 

就不會有這樣的合成參考。