Tôi có hai lớp: AbstractMailingDirections
và DirectionLoad
. Cả hai đều có một constructor sao chép như sau:Nhà xây dựng bản sao Weird
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));
}
}
và
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;
}
Bây giờ khi tôi gọi constructor MailingDirections
bản sao (mà chỉ super(toCopy)
là) đôi khi tôi không nhận được các lĩnh vực của defaultDirection
sao chép. Hay không phải tất cả. Và việc sử dụng trình gỡ rối Eclipse thậm chí còn lạ hơn:
tại đây tôi đã nhấp vào AbstractMailingDirections
để sao chép. Xem cách defaultDirection.acceptanceTime
là 17:00 trong bản in toString
nhưng hiển thị null
trong danh sách trường. Nếu tôi nhấp vào defaultDirection, đó là in toString
sẽ hiển thị trường acceptanceTime
là null
.
Điều này khiến tôi phát điên. Bất cứ ý tưởng những gì có thể gây ra điều này?
Sẽ hữu ích nếu bạn đăng [SSCCE] (http://sscce.org) để tái tạo hành vi. – npe
Các thực thể Hibernate này (hoặc JPA hoặc tương tự)? Trong trường hợp đó truy cập vào các lĩnh vực có thể phanh ma thuật tải lười biếng và truy cập nó thông qua getters có thể sửa chữa nó. –
Chết tiệt. @ JensSchauder mà chỉ có thể là nó. – vertti