Ist es eine schlechte Übung, ein NULL-Argument an Methoden zu übergeben, oder mit anderen Worten, sollten wir Methodendefinitionen haben, die das NULL-Argument als gültiges Argument zulassen.Sind NULL-Argumente eine schlechte Übung?
Angenommen, ich möchte zwei Methode 1. Liste aller Unternehmen abrufen 2. Liste der Unternehmen basierend auf Filter abrufen.
Wir können entweder zwei Methoden wie wie unten
List<Company> getAllCompaniesList();
List<Company> getCompaniesList(Company companyFilter);
oder wir können eine einzige Methode haben
List<Company> getCompaniesList(Company companyFilter);
hier in zweiten Fall, wenn Argument NULL ist dann Methode Rückkehr Liste aller Firmen.
Neben der Frage der guten Praxis sehe ich ein weiteres Problem mit dem späteren Ansatz, der unten erklärt wird.
Ich implementiere Spring AOP, in dem ich einige Überprüfungen auf Argumente wie haben möchte 1. Ist Argument NULL? 2. ist Größe der Sammlung 0?
Es gibt einige Szenarien, in denen wir Null-Argument nicht wie für Verfahren
void addBranches(int companyId, List<Branch>);
Diese Prüfung sehr gut mit Spring AOP durch die Definition von Verfahren wie folgt
@Before(argNames="args", value="execution(* *)")
void beforeCall(JoinPoint joinPoint ,Object[] args)
{
foreach(Object obj in args)
{
if(obj == NULL)
{
throw new Exception("Argument NULL");
}
}
}
durchgeführt werden können, haben kann Aber das Problem, dem ich gegenüberstehe, ist, da ich einige Methoden definiert habe, die NULL-Argument für mehrere Funktionen einer einzelnen Methode akzeptieren sollten, wie oben für Methode List getCompaniesList (Firma companyFilter) erwähnt; So kann ich AOP nicht einheitlich für alle Methoden anwenden, und weder irgendein Ausdruck für die Methodennamensübereinstimmung wird hier nützlich sein.
Bitte lassen Sie mich wissen, wenn mehr Informationen benötigt werden oder das Problem nicht beschreibend genug ist.
Danke, dass Sie mein Problem gelesen haben und darüber nachgedacht haben.
Es ist eine Frage des Stils. Keine einzige richtige Antwort. –