J'aime l'utilisation de cette méthode ici:
org.apache.commons.lang.ObjectUtils.equals(Object object1, Object object2)
Le seul inconvénient (par rapport à Google de Goyave, par exemple), c'est que je ne peut pas statique de l'importation de la méthode. I. e. c'est inutile:
import static org.apache.commons.lang.ObjectUtils.equals;
... que mon Eclipse compilateur ne sera pas correctement lien de cette méthode lors de l'écriture
equals(obj1, obj2);
L'erreur est:
La méthode equals(Object) dans le type de l'Objet n'est pas applicable pour les arguments (..., ...)
Pourquoi est-ce? Est mon statiquement importés méthode n'est pas applicable s'il y a une méthode avec le même nom (mais pas la même signature) dans l'un des super-types? Est-ce formellement spécifié dans le JLS? Ou certains Eclipse compilateur problème?
Mise à JOUR
Cela ne fonctionne pas, soit:
import static org.apache.commons.lang.ObjectUtils.defaultIfNull;
public class Test {
void test() {
defaultIfNull(null, null);
// ^^ compilation error here
}
void defaultIfNull() {
}
}
javac message d'erreur:
Test.java:5: defaultIfNull() in Test cannot be applied to (<nulltype>,<nulltype>)
defaultIfNull(null, null);
^
1 error