奇怪的复制构造函数

ver*_*tti 5 java constructor

我有两个班:AbstractMailingDirectionsDirectionLoad.两者都有一个拷贝构造函数如下:

public AbstractMailingDirections(AbstractMailingDirections toCopy) {
    this.message = toCopy.message;
    this.defaultDirection = new DirectionLoad(toCopy.defaultDirection);
    for (final DirectionLoad dls : toCopy.directionLoads) {
        this.directionLoads.add(new DirectionLoad(dls));
    }
}
Run Code Online (Sandbox Code Playgroud)

public DirectionLoad(DirectionLoad toCopy) {
    this.direction = toCopy.direction;
    this.transportationContract = toCopy.transportationContract;
    this.pickUpTime = toCopy.pickUpTime;
    this.acceptanceTime = toCopy.acceptanceTime;
    this.acceptanceLocation = toCopy.acceptanceLocation;
    this.information = toCopy.information;
}
Run Code Online (Sandbox Code Playgroud)

现在,当我调用MailingDirections复制构造函数(这只是super(toCopy))时,我有时不会得到defaultDirection复制的字段.或者不是全部.使用Eclipse调试器甚至更奇怪:

调试器 在这里,我点击了AbstractMailingDirections要复制的内容.看看印刷品中的defaultDirection.acceptanceTime17:00 如何,toString但显示null在字段列表中.如果我单击defaultDirection,它的toStringprint将显示该acceptanceTime字段为null.

这让我疯了.可能导致这种情况的任何想法?

Jen*_*der 2

这些是 Hibernate 实体(或 JPA 或类似实体)吗?在这种情况下,访问字段可能会阻止延迟加载魔法,而通过 getter 访问它可能会修复它。