所以我知道这很令人困惑,但为什么会这样呢?如果我有
public class A implements Parcelable{
private B propB;
}
public class B extends A implements Parcelable{
private int stuff;
}
所以如果我创造了一个
A objectA = new A();
不会有这样的无限循环: objectA.propB.propB.propB?
主要问题是我想在android中将类B的实例作为一个包传递,但这不起作用,没有错误,只是数据没有通过。除了那个似乎是循环依赖的属性之外,所有属性和数据都会被传递。
有什么理由说这是好习惯吗?或者这不是一个好主意?
答案 0 :(得分:0)
在任何情况下都不会发生错误,因为B对象只有A的私有字段,而不是初始化。 但是,如果您创建一个新的B实例,则只创建一个新对象A()。
如果你想使用
objectA.propB.propB.propB .......
你可以得到NullPointException。
答案 1 :(得分:0)
数据未被传递的原因是因为包裹。我没有在子类B上调用super(in)。所以尽管没有错误,但没有任何数据通过。