我有一个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作为嵌套类,或者B.我可以简单地将它用作A中的变量/对象。
所以我的问题:
我应该选择哪个计划?
如果我使用计划A,我是否可以假设每次构建A类时都会构建我的嵌套类MetaClassA?
如果我使用计划B,我如何保证每次构建A类时都会构建一个MetaClassA对象?既然它扩展了imageView并且有点没有传统的构造函数?
提前感谢您的帮助!
答案 0 :(得分:0)
按顺序:
A
构造函数中创建它。但是我反对整个计划。在回答您的问题后,我建议您查看Parcelable的一些示例。这是我喜欢的其他原因:http://www.developerphil.com/parcelable-vs-serializable/,由开发人员Phil。
在另一个范围内有一个Parcelable类的例子。请注意,这比您需要的更复杂 - 您只需要在类A
中实现Parcelable,特别是@override
:
void writeToParcel(Parcel dest, int flags)
int describeContents()
static final Parcelable.Creator<A> CREATOR = new Parcelable.Creator<A>()
请参阅链接以获取完整示例。因为这可以相当客观地回答(我希望)我回答了你的问题,但试着避免“什么是更好”的问题。如果有的话,在研究主题之后尝试“速度/效率/最佳实践从使用这个或那个”问题中获益 - 而不是找到确定的答案。即便如此,它也可能被视为基于意见。