Ich habe eine Klasse mit den Feldern "DeletionDate" und "ExperiationDate", die beide undefiniert sein könnten, was bedeuten würde, dass das Objekt gelöscht wurde oder ein Ablaufdatum hat.Wie man "nie" mit java.util.Date ausdrückt?
Mein erster Ansatz war:
private Date deletionDate = null; // null means not deleted
das Buch „Clean Code“ im Auge Nachdem ich erinnere mich besser zu expressiven Namen statt Kommentare zu verwenden. Also meine aktuellen Lösungen ist:
Ich könnte eine Wrapper-Klasse um Date, aber das würde JPA Mapping komplizieren.
Was halten Sie davon? Wie würdest du "nie" ausdrücken?
+1. Nie ist nie.^ – KB22
Auch +1 für nie ist nie, aber beachten Sie, dass das Problem mit der Verwendung von Null zu "nie" bedeutet, dass es bedeutet, dass Sie dann nicht eine Möglichkeit haben, anzugeben " noch nicht gesetzt ". Es ist eine Anwendungsfrage, ob das wichtig ist, aber es ist ziemlich einfach, sich vorzustellen, dass der OP später feststellen muss, ob der Wert gesetzt wurde, was dazu führt, dass eine zweite" boolesche hasBeenSet "Variable benötigt wird Das wäre icky. – CPerkins
Beachten Sie, dass * wenn * Sie für diese Option "null" wählen, sollten Sie diese Bedeutung unbedingt dokumentieren. Wie @CPerkins feststellt, kann die genaue Bedeutung von "null" von Fall zu Fall variieren. Manchmal ist 'null' ein Fehler (dh es darf nie gesetzt werden), manchmal bedeutet es" unbekannt ", manchmal bedeutet es" noch nicht gesetzt ", ... –