我讀過一些書中使用內部類會使應用程序更大(每個內部類使用幾個KB),但是有沒有關於性能的問題?我在Google的示例代碼中看到了內部類,但是總的來說,是否鼓勵在Android中使用內部類?是否鼓勵在Android開發中使用內部類?
謝謝!
我讀過一些書中使用內部類會使應用程序更大(每個內部類使用幾個KB),但是有沒有關於性能的問題?我在Google的示例代碼中看到了內部類,但是總的來說,是否鼓勵在Android中使用內部類?是否鼓勵在Android開發中使用內部類?
謝謝!
內部類是優秀的1次,並且在同一班級以不止一種方式。
2.匿名類是創建事件處理程序的最佳方法。
3.使用頂層類(即靜態內部類)會發光,因爲它而且像一個外部類未具有對外部類任何隱式引用。
4.非靜態內部類將是開銷的位,因爲它持有對外部類的隱式引用。
例如: 對於內部類具有內隱參考
例如:
public class outer{
int x = 10;
class inner{
int x=5;
public void go(){
System.out.println("Inner x: "+ this.x); // Prints x in Inner class
System.out.println("Inner x: "+ Outer.this.x); // Prints x in Outer class
}
}
}
內部類,匿名類和常規類之間不應該有任何顯着的代碼大小差異。至於內部和常規之間的區別,你可以解壓縮你的jar,並看到爲每個jar文件生成一個普通的.class文件。
所以不要在不必要的情況下發瘋,但它也不是「不惜一切代價避免」的情況。
只要你使用靜態內部類,你會沒事的。靜態內部類更適合於方便地安排類並適當地對其進行範圍。
這不是非靜態內部類的情況,因爲它們持有對持有它們的類的引用。這不僅是沉重的,而且在Android中也是危險的,當時舉辦的課程是一個活的課程,即附加了一個Context。這可能導致內存泄漏,可能會泄漏整個應用程序。
這是一個非常類似的問題(關於內部類的用戶在活動適配器),答案:當你想實現一個接口方法不止 What is the better way, keeping adapter as an inner class of activity or outside?