Guava - Objects Class

Objects class provides helper functions applicable to all objects such as equals, hashCode, etc.
Following is the declaration for com.google.common.base.Objects class −
@GwtCompatible
public final class Objects
   extends Object
static boolean	equal(Object a, Object b)
Determines whether two possibly-null objects are equal.
static <T> T	firstNonNull(T first, T second)
Deprecated. Use MoreObjects.firstNonNull(T, T) instead. This method is scheduled for removal in June 2016.
static int hashCode(Object... objects)
Generates a hash code for multiple values.
static Objects.ToStringHelper	toStringHelper(Class<?> clazz)
Deprecated. Use MoreObjects.toStringHelper(Class) instead. This method is scheduled for removal in June 2016
static Objects.ToStringHelper	toStringHelper(Object self)
Deprecated. Use MoreObjects.toStringHelper(Object) instead. This method is scheduled for removal in June 2016.
static Objects.ToStringHelper	toStringHelper(String className)
Deprecated. Use MoreObjects.toStringHelper(String) instead. This method is scheduled for removal in June 2016.
This class inherits methods from the following class −
java.lang.Object
Create the following java program using any editor of your choice in say C:/> Guava.
import com.google.common.base.Objects;

public class GuavaTester {
   public static void main(String args[]) {
      Student s1 = new Student("Mahesh", "Parashar", 1, "VI");	
      Student s2 = new Student("Suresh", null, 3, null);	
	  
      System.out.println(s1.equals(s2));
      System.out.println(s1.hashCode());	
      System.out.println(
         Objects.toStringHelper(s1)
         .add("Name",s1.getFirstName()+" " + s1.getLastName())
         .add("Class", s1.getClassName())
         .add("Roll No", s1.getRollNo())
         .toString());
   }
}

class Student {
   private String firstName;
   private String lastName;
   private int rollNo;
   private String className;

   public Student(String firstName, String lastName, int rollNo, String className) {
      this.firstName = firstName;
      this.lastName = lastName;
      this.rollNo = rollNo;
      this.className = className;		
   }

   @Override
   public boolean equals(Object object) {
      if(!(object instanceof Student) || object == null) {
         return false;
      }
      Student student = (Student)object;
      // no need to handle null here		
      // Objects.equal("test", "test") == true
      // Objects.equal("test", null) == false
      // Objects.equal(null, "test") == false
      // Objects.equal(null, null) == true		
      return Objects.equal(firstName, student.firstName)  // first name can be null
         && Objects.equal(lastName, student.lastName)     // last name can be null
         && Objects.equal(rollNo, student.rollNo)	
         && Objects.equal(className, student.className);  // class name can be null
   }

   @Override
   public int hashCode() {
      //no need to compute hashCode by self
      return Objects.hashCode(className,rollNo);
   }
   
   public String getFirstName() {
      return firstName;
   }
   
   public void setFirstName(String firstName) {
      this.firstName = firstName;
   }
   
   public String getLastName() {
      return lastName;
   }
   
   public void setLastName(String lastName) {
      this.lastName = lastName;
   }
   
   public int getRollNo() {
      return rollNo;
   }
   
   public void setRollNo(int rollNo) {
      this.rollNo = rollNo;
   }
   
   public String getClassName() {
      return className;
   }
   
   public void setClassName(String className) {
      this.className = className;
   }
}
Compile the class using javac compiler as follows −
C:\Guava>javac GuavaTester.java

Now run the GuavaTester to see the result.
C:\Guava>java GuavaTester

See the result.
false
85871
Student{Name=Mahesh Parashar, Class=VI, Roll No=1}

 Print
 Add Notes
 Bookmark this page