La verdad es que mucho no me gusta (sera resistencia al cambio), yo pienso que le roba trabajo a los objetos, para mi debería estar esta funcionalidad en Object o de otra forma, no lo se.
Más allá de mi humilde opinión era necesaria, siempre teníamos que escribir un util que haga cosas que hora hace esta librería.
Veamos unos ejemplos:
public void showFoo(Foo foo) { Foo foo2 = new Foo();
//lot of code
if(foo.equals(foo2)) {
System.out.println("Two Men");
} else {
System.out.println("And a Half");
}
}
Esto puede dar NullPointer veamos como lo resolvemos con Objects:
public void showFoo(Foo foo) {
Foo foo2 = new Foo();
//lot of code
if(Objects.equals(foo,foo2)) {
System.out.println("Two Men");
} else {
System.out.println("And a Half");
}
}
Podemos hacer el hash con Objects, que sera de org.apache.commons.lang.builder.HashCodeBuilder
@Override public int hashCode() {
return Objects.hash(name, age, job);
}
Podemos chequear que un objeto no sea null
public void showFoo(Foo foo) {
this.bar = Objects.requireNonNull(foo);
}
Podemos tomar tomar el toString si no es nulo, y de lo contrario devolver un valor:
return Objects.toString(foo, “Foo is Empty”);
Interesante no? que les parece la nueva librería?
Fuente: http://alexsotob.blogspot.com/2011/04/another-shot-of-whiskey-cant-stop.html