J'ai une classe avec les champs "deletionDate" et "experiationDate" qui pourraient tous deux être indéfinis, ce qui signifierait que l'objet est supprimé et n'a pas de date d'expiration.Comment exprimer "jamais" avec java.util.Date?
Ma première approche était:
private Date deletionDate = null; // null means not deleted
Avoir le livre « code propre » à l'esprit, je me souviens de mieux utiliser les noms d'expression au lieu des commentaires. Donc, mes solutions actuelles sont:
private static final Date NEVER = null;
private Date deletionDate = NEVER;
Je pourrais utiliser une classe wrapper autour de Date, mais cela compliquerait le mappage JPA.
Qu'en pensez-vous? Comment voulez-vous exprimer "jamais"?
+1 Jamais n'est jamais.^ – KB22
Aussi +1 pour jamais n'est jamais, mais notez que le problème avec l'utilisation de null pour signifier "mettre à jamais" est que cela signifie que vous n'avez pas alors un moyen d'indiquer " C'est une question d'application si cela compte, mais il est assez facile d'imaginer que l'OP découvre plus tard qu'il est nécessaire de garder une trace si la valeur a été définie, conduisant à avoir besoin d'une seconde variable "boolean hasBeenSet" pour chaque – CPerkins
Notez que * si * vous choisissez 'null' pour cela, vous devriez certainement documenter ce sens.Comme @CPerkins le remarque, la signification exacte de 'null' peut varier au cas par cas. Parfois 'null' est une erreur (ie ne doit jamais être défini), parfois cela signifie" inconnu ", parfois cela signifie" pas encore défini ", ... –