Ho due classi: AbstractMailingDirections
e DirectionLoad
. Entrambi hanno un costruttore di copia come segue:Costruttore di copie strano
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));
}
}
e
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;
}
Ora, quando io chiamo il costruttore MailingDirections
copia (che è solo super(toCopy)
) A volte non si ottiene campi della defaultDirection
copiato. O non tutti loro. E l'utilizzo di un debugger Eclipse è ancora più strano:
qui ho cliccato sul AbstractMailingDirections
da copiare. Guarda come defaultDirection.acceptanceTime
è 17:00 nella stampa toString
ma mostra null
nell'elenco dei campi. Se faccio clic su defaultDirection, è la stampa toString
mostrerà il campo acceptanceTime
come null
.
Questo mi sta facendo impazzire. Qualche idea su cosa potrebbe causare questo?
Sarebbe utile se hai pubblicato un [SSCCE] (http://sscce.org) che riproduce il comportamento. – npe
Queste entità Hibernate (o JPA o simili)? In tal caso, l'accesso ai campi potrebbe frenare la magia del caricamento pigro e accedervi tramite i Getter potrebbe ripararlo. –
Accidenti. @JensSchauder che potrebbe essere proprio questo. – vertti