Так что я знаю, что это сбивает с толку, но почему это работает? Если у меня естьКласс B расширяет класс A, но класс A имеет свойство класса B
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?
Основная проблема заключается в том, что я хочу передать экземпляр класса B в android в виде пакета, но это не работает, нет ошибки, просто данные не пройдены. Все свойства и данные передаются за исключением одного свойства, которое, как представляется, является циклической зависимостью.
Есть ли причина, почему это хорошая практика? или это просто не очень хорошая идея?
Чтобы уточнить, изменили ли вы его на 'private B propB = new B()', вы получили бы переполнение стека ... это было в ответ на другой комментарий, который исчез. –
Почему бы не просто пройти в объекте B как пучок? Вы, безусловно, получите переполнение стека, когда вы попытаетесь создать новый экземпляр класса B. – kopikaokao
Итак, это хорошая практика иметь свойство, которое будет подклассом того суперкласса, которым это свойство? – reidisaki