Ho lavorato con il codice Liferay e ho trovato questo costrutto alcune volte:
List<?> list;
...
if (Validator.isNotNull(list)) {
//do stuff
}}
Il codice sorgente per Validator.java
assomiglia a questo:
public static boolean isNotNull(Object obj) {
return !isNull(obj);
}
public static boolean isNull(String obj) {
...
}
public static boolean isNull(Long obj) {
...
}
public static boolean isNull(Integer obj) {
...
}
public static boolean isNull(Object obj) {
if (obj instanceof String) {
return isNull((String)obj);
}
if (obj instanceof Long) {
return isNull((Long)obj);
}
if (obj instanceof Integer) {
return isNull((Integer)obj);
}
return obj == null;
}
Quindi la mia domanda: quali sono i vantaggi di chiamare Validator a svolgere questa funzione anziché scrivere semplicemente if (obj == null)
? Queste chiamate di funzione aggiungono un sovraccarico abbastanza significativo che vale la pena evitare questo metodo di programmazione?