J'apprends Java en ce moment, j'espère que cette question n'est pas trop évidente. Je viens d'une autre langue qui n'a pas de garbage collection. Dans cette autre langue, j'ai parfois créé des objets dans le constructeur, puis les ai supprimés dans le destructeur afin que je puisse les utiliser pendant toute la vie de l'objet.Portée de l'objet au sein d'un objet en Java
À titre d'exemple simplifié, j'ai un utilisateur et une classe de réservation. La classe de réservation référence un utilisateur mais si je crée l'utilisateur dans le constructeur de la classe de réservation, il déréférence l'utilisateur une fois qu'il quitte le constructeur et devient hors de portée. Tout appel de référence future à l'utilisateur booking.bookedBy renvoie alors la valeur null.
class user {
public String username;
public String displayName;
user(Connection conn, String usernameIn){
username = usernameIn;
... do DB stuff to populate attributes
}
}
class booking {
int bookingID;
user bookedBy;
...
booking(Connection conn, int bookedIDIn){
bookingID = bookedIDIn;
...do DB stuff to populate attributes and grab bookedByUserID
...field value and build the BookedByUsername
user bookedBy = new user (bookedByUsername)
}
}
Y a-t-il un moyen de contourner ce problème? Ou dois-je repenser mon design?
ne pas utiliser de noms de classes minuscules, s'il vous plaît. – Thilo
Point pris - Je vais essayer de se conformer. Existe-t-il une convention de dénomination standard documentée nulle part? Une autre raison pour laquelle je préfère les langages insensibles à la casse. – Peter
http://www.oracle.com/technetwork/java/codeconv-138413.html –