加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 奇怪的复制构造函数

发布时间:2020-12-14 19:35:51 所属栏目:Java 来源:网络整理
导读:我有两个类:AbstractMailingDirections和DirectionLoad.两者都有一个拷贝构造函数如下: public AbstractMailingDirections(AbstractMailingDirections toCopy) { this.message = toCopy.message; this.defaultDirection = new DirectionLoad(toCopy.defaul
我有两个类:AbstractMailingDirections和DirectionLoad.两者都有一个拷贝构造函数如下:
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复制构造函数(它只是超级(toCopy))时,我有时不会复制defaultDirection的字段.或者不是全部.使用Eclipse调试器甚至更奇怪:

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

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读