¿Es una mala práctica pasar el argumento NULL a métodos o en otras palabras deberíamos tener definiciones de métodos que permitan el argumento NULL como argumento válido?¿Los argumentos NULL son una mala práctica?
Supongamos que quiero dos métodos 1. para recuperar la lista de todas las empresas 2. para recuperar la lista de empresas según el filtro.
cualquiera Podemos tener dos métodos como el de la siguiente manera
List<Company> getAllCompaniesList();
List<Company> getCompaniesList(Company companyFilter);
o podemos tener un único método
List<Company> getCompaniesList(Company companyFilter);
aquí en el segundo caso, si el argumento es NULL entonces lista de regreso método para todos compañías.
Al lado de la cuestión de las buenas prácticas, prácticamente veo un problema más con el enfoque posterior que se explica a continuación.
Estoy implementando Spring AOP, en el que quiero tener algunos controles sobre argumentos como 1. ¿Es argumento NULL? 2. es el tamaño de la colección 0?
Hay algunos escenarios en los que no podemos tener argumento nulo en absoluto como para el método
void addBranches(int companyId, List<Branch>);
Esta comprobación se puede realizar muy bien mediante el uso de primavera AOP mediante la definición de método como seguir
@Before(argNames="args", value="execution(* *)")
void beforeCall(JoinPoint joinPoint ,Object[] args)
{
foreach(Object obj in args)
{
if(obj == NULL)
{
throw new Exception("Argument NULL");
}
}
}
Pero el problema al que me enfrento es que he definido algunos de los métodos que deberían aceptar el argumento NULL para la funcionalidad múltiple de un único método, como se mencionó anteriormente para el método List getCompaniesList (Company companyFilter); Así que no puedo aplicar el AOP uniformemente para todos los métodos y ninguna de las expresiones para la coincidencia de nombres de métodos será útil aquí.
Háganme saber si se requiere más información o el problema no es lo suficientemente descriptivo.
Gracias por leer mi problema y pensar en ello.
Es una cuestión de estilo. No hay una sola respuesta correcta. –