[英]How do I elegantly solve this inner-object/inner-class situation?
我有一個A類,它擴展了imageView,所以您有:
public class A extends imageView {...}
然后,我有了MetaClassA,它存儲A的元數據並在活動之間來回發送,因此您具有:
public class MetaClassA implement Parcelable{...}
使用MetaClassA的全部目的是收集和傳輸A類的數據,而無需實際發送A類本身,這會帶來問題並且有點笨。
現在,我遇到了一個兩難的困境:您看到我想使所有事情都盡可能高效和輕松地進行,我希望經常使用以下命令 :
public A a = new A();
i.putExtra("type" a.getType());
盡可能代替:
...
Type type = a.getType();
i.putExtra("type" type);
所以我的難題是,我可以將A類內部的MetaClassA作為嵌套類,或者BI可以簡單地將其用作A內部的變量/對象。
所以我的問題是:
我應該選擇哪個計划?
如果我要使用計划A,是否可以假設每次構造A類時都會構造嵌套類MetaClassA?
如果我要遵循計划B,那么如何保證每次構造類A時都會構造MetaClassA對象? 由於它擴展了imageView並且還沒有常規的構造函數?
提前謝謝你的幫助!
按命令:
A
構造函數中創建它。 但我反對整個計划。 回答問題后,建議您檢查一些Parcelable示例。 由於其他原因,我喜歡這里的一個:開發人員Phil的http://www.developerphil.com/parcelable-vs-serializable/ 。
有一個例子,另一個例子中有一個Parcelable類。 請注意,這比您需要的復雜得多-您只需要在A
類中實現@override
,特別是@override
:
void writeToParcel(Parcel dest, int flags)
int describeContents()
static final Parcelable.Creator<A> CREATOR = new Parcelable.Creator<A>()
有關完整示例,請參見鏈接。 由於可以相當客觀地回答這個問題(我希望),所以我回答了您的問題,但請盡量避免“更好的問題”。 如果有的話,請在研究主題並沒有找到最終答案之后,嘗試“通過使用此方法獲得的速度/效率/最佳實踐收益”問題。 即使那樣,也可以認為是基於意見的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.