¿Por qué utiliza java.time 'de' en lugar de 'nuevo' para fechas?

David Marciel:

En el nuevo paquete fecha en Java 8, cambiamos el uso de " nueva fecha ()" a "LocalDate. De ()".

Date d = new Date(year, month, dayOfMonth);            //Old way
LocalDate d2 = LocalDate.of(year, month, dayOfMonth);  //new way

Cuando se desea un nuevo objeto que suelen utilizar la newpalabra clave. Esta es una forma intuitiva para crear un nuevo objeto.

A veces, cuando se necesita un conjunto unitario con la inicialización retardada se puede utilizar un método estático para obtener la instancia. En este caso hay que llamarlo getInstance()para que los desarrolladores saben qué esperar.

Esta nueva sintaxis hace que el código sea menos intuitiva. Te obliga a aprender a lidiar con objetos específicos en lugar de simple uso de ellos.

¿Hay buenas razones bajo el capó de este cambio?

Ravindra Ranwala:

Por lo general, los métodos estáticos de fábrica son preferibles a los constructores por varias razones,

  • Tienen un nombre y que hace que su código sea más legible.
  • métodos de fábrica estáticas pueden tener tipos de retorno covariantes, pero el constructor no pueden. Esto permite a sus usuarios de la API para trabajar con la interfaz, no la ejecución, lo que le permite más espacio para cambiar los tipos de hormigón en futuras versiones. También se reduce la superficie conceptual de la API también.
  • A diferencia de los constructores, métodos de fábrica estáticas pueden hacer ciertas optimizaciones. Por el contrario, cada vez que se llama a un constructor, se espera que retorne un objeto nuevo. Para un ejemplo, echa un vistazo a la ejecución del método de fábrica estáticaCollections.emptyList();
public static final List EMPTY_LIST = new EmptyList<>();

public static final <T> List<T> emptyList() {
    return (List<T>) EMPTY_LIST;
}

Avidez crea una lista unitaria y lo devuelve en cada llamada ahorro de sobrecarga innecesaria que se produciría cuando se utilizaron los constructores.

Debido a las razones anteriores, las fábricas estáticas son preferibles a los constructores en la programación de hoy. Sin embargo, todavía se puede utilizar la newpalabra clave con los constructores como las circunstancias lo justifiquen.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=437219&siteId=1
Recomendado
Clasificación