java - 奇怪的复制构造函数

标签 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));
    }
}

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;
}

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

Debugger 在这里,我点击了要复制的 AbstractMailingDirections。查看 defaultDirection.acceptanceTime 如何在 toString 打印中显示为 17:00,但在字段列表中显示为 null。如果我单击 defaultDirection,它的 toString 打印会将 acceptanceTime 字段显示为 null

这让我抓狂。任何想法可能是什么原因造成的?

最佳答案

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

关于java - 奇怪的复制构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16212151/

相关文章:

java - System.out.println不打印数组数据

java - 检查用户是否是 java 应用程序中的 root

c# - C#中的构造函数和继承问题

c++ - 构造函数/函数声明参数列表中的统一初始化

c++ - 为什么赋值运算符调用构造函数?

java - 如何在 JFreeChart 上仅显示选定类别的值?

java - 注册和登录之间应该使用哪些箭头?

java - Drools引擎和数据库之间的区别

c++ - 在构造函数的初始化列表中使用 "this"对 Qt 特别危险吗?

java - 构造函数有很多元素。如何重构(工厂模式)