Скажет, у меня есть следующий класс:Композиция в Java
public class BodyClass{
private LegClass myLeftLeg;
private LegClass myRightLeg;
private NoseClass myNose;
...
}
позже где-то глубоко в программе, я собираюсь иметь уединенный экземпляр myRightLeg.
Теперь, почему я не знаю легко (или вообще), к какому объекту BodyClass относится этот rightleg, не говоря уже о том, в какой класс этой переменной содержится этот экземпляр? Почему в составных отношениях информация о родительском классе не сохраняется автоматически в дочерних объектах во время выполнения?
Не может быть мира, в котором Java lazily-загружает каждую переменную класса с информацией о самом родительском классе?
Зачем это плохо? И разве это не будет достаточно солидным преимуществом?
Я слышал, как люди говорят, что такие вещи, как подклассы, ничего не знают о своих суперклассах, а переменные экземпляра не должны ничего знать о своих родительских классах, но, честно говоря, я не понимаю, почему нет.
Моего вопрос относится к этому вопросу:
How do you find all subclasses of a given class in Java?
Вы всегда можете проверить тип экземпляра, используя operatorOf operator –
Какая проблема при работе с? Это пахнет как проблема [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). –
привет Мэтт, я использую DB4o, и в этом проблема возникает. Если у меня есть объект Model, и я могу вызвать store() для этого объекта, этот объект Model может иметь другой объект Model как переменную экземпляра. Это очень распространено, особенно в моделях классов моделей для таблиц реляционных баз данных. Но если я вызову store() в объекте переменной экземпляра, как DB4o знает, что этот экземпляр-переменный объект был дочерним по отношению к родительскому объекту модели? Я не уверен, что это так, и должно. –