Tengo una clase con los campos "deletionDate" y "experiationDate" que podrían no estar definidos, lo que significaría que el objeto está eliminado o no tiene una fecha de caducidad.Cómo expresar "nunca" con java.util.Date?
Mi primer acercamiento fue:
private Date deletionDate = null; // null means not deleted
Tener el libro "Código limpio" en mente me recuerda a un mejor uso de nombres expresivos en lugar de comentarios. Así que mis soluciones actuales es:
private static final Date NEVER = null;
private Date deletionDate = NEVER;
pude usuario una clase envoltura alrededor de la fecha, pero eso complicaría APP mapeo.
¿Qué opina de eso? ¿Cómo expresarías "nunca"?
+1. Nunca es nunca.^ – KB22
También +1 para nunca es nunca, pero tenga en cuenta que el problema con el uso de null significa "establecer en nunca" es que significa que no tiene una forma de indicar " aún no establecido ". Es una pregunta de la aplicación si eso importa, pero es bastante fácil imaginar que el OP tarde descubra la necesidad de realizar un seguimiento de si el valor se ha establecido, lo que lleva a la necesidad de una segunda variable" boolean hasBeenSet "para cada , que sería asqueroso. – CPerkins
Tenga en cuenta que * si * usted elige 'nulo' para esto, definitivamente debe documentar este significado. Como notas de @CPerkins, el significado exacto de' null' puede variar caso por caso. A veces 'nulo' es un error (es decir, nunca debe establecerse), a veces significa" desconocido ", a veces significa" aún no establecido ", ... –