Pojomatic provides configurable implementations of the equals(Object)
, hashCode()
and toString()
methods inherited from java.lang.Object
.
For example, the following bean has been "pojomated":
import org.pojomatic.Pojomatic; import org.pojomatic.annotations.AutoProperty; @AutoProperty public class Person { private final String firstName; private final String lastName; private final int age; public Person(String firstName, String lastName, int age) { this.firstName = firstName; this.lastName = lastName; this.age = age; } public String getFirstName() { return this.firstName; } public String getLastName() { return this.lastName; } public int getAge() { return this.age; } @Override public boolean equals(Object o) { return Pojomatic.equals(this, o); } @Override public int hashCode() { return Pojomatic.hashCode(this); } @Override public String toString() { return Pojomatic.toString(this); } }
The above class implements equals
and hashCode
methods following the best practices
outlined in Josh Bloch's Efective Java. Moreover, running
System.out.println(new Person("John", "Doe", 32).toString());
Person{firstName: {John}, lastName: {Doe}, age: {32}}
For more information and examples, see the JavaDocs.