Mi aplicación que he heredado recientemente está llena de advertencias de desaprobación sobre el constructor:¿Por qué "nueva fecha (int año, mes int, día int)" obsoleta?
Date d = new Date(int year, int month, int day)
¿Alguien sabe o puede apuntar a una razón de por qué algo tan simple como esto fue "sustituido" con algo como esto:
Date d = null;
Calendar cal = GregorianCalendar.getInstance();
cal.set(1900 + year, month, day);
d = cal.getTime();
Ahora, obviamente, las advertencias de desaprobación no son un problema en sí mismas, pero ¿pueden imaginarse los millones de LOC que estarían gritando en agonía si este constructor se elimina alguna vez?
En mi pequeño juego breve en el benchmarking, este último tarda aproximadamente un 50% más de tiempo en ejecutarse.
¿No es la primera línea una pérdida total de tiempo? Usted obtiene una fecha de la llamada a Calendar.getTime(), entonces, ¿por qué crear una con la nueva llamada Date() que luego se descarta? Especialmente si estuvieras evaluando esto ... – unwind
@ unwind: Una buena captura. por qué no, haz una publicación. –
Quizás es porque los estadounidenses esperaban Fecha (int año, int día, mes int) ;-) – Skizz