Estamos utilizando Tres diez Backport en nuestro proyecto, ya que uno de nuestros clientes está utilizando Java 7. Tres diez Backport nos da la nueva funcionalidad de fecha y hora (java.time. *) Introducido en Java 8.
Me gustaría saber si la siguiente es una práctica buena. Dado que la mayoría de nuestros clientes están usando Java 8, y un día nos podría actualizar todos los clientes a Java 8, ¿realmente tiene sentido para calificar totalmente los nombres de las clases con org.threeten.bp? Eventualmente podríamos uprade todos los clientes a Java 8 y eliminar esta dependencia, y si nos terminan haciendo esto, entonces habrá menos cambios de código si nos limitamos a usar los nombres de clase sin el prefijo de paquete. Para dar un ejemplo de código, lo que quiero decir es esto.
import org.threeten.bp.LocalDate Time;
public class Example {
public void example() {
LocalDateTime datetime = // ....
}
}
Se puede ver en el ejemplo que me refiero LocalDateTime sin el prefijo de paquete. En Java 8, se cargará la clase java.time.LocalDateTime, o la org.threeten.bp.LocalDateTime? Es un poco confuso ya que en este código, en Java 8, hay dos LocalDateTime de flotando alrededor, uno de java.time y el otro de org.threeten.bp. Asumo que la biblioteca nativa de Java se dará preferencia y se carga, pero podría estar equivocado.
Está haciendo esta buena práctica? O podría generar compilador advertencias / errores? Incluso si no genera las advertencias o errores, podría todavía ser una mala práctica? Estoy tentado de hacer esto porque la clasificación totalmente una clase por un paquete es simplemente feo, y si terminamos la eliminación de la dependencia Tres diez luego vamos a tener que cambiar todas las instancias de ese código, en lugar de borrar declaraciones de importación. Feliz de escuchar sus pensamientos.
Sólo habrá un choque cuando se tiene tanto de las importaciones:
import org.threeten.bp.LocalDateTime;
import java.time.LocalDateTime;
Tener sólo el import org.threeten.bp.LocalDateTime;
no debe causar un problema. Por lo tanto, no es necesario para calificar plenamente con cualquier declaraciónLocalDateTime datetime = ...