add a post java obj equal hashcode contract