Guava – Objects Class

  • Post author:
  • Post category:Guava
  • Post comments:0 Comments
Objects class

Objects class provides helper functions applicable to all objects such as equals, hashCode, etc.

Class Declaration

Following is the declaration for com.google.common.base.Objects class −

@GwtCompatible
public final class Objects
   extends Object

Class Methods

Sr.NoMethod & Description
1static boolean equal(Object a, Object b)Determines whether two possibly-null objects are equal.
2static <T> T firstNonNull(T first, T second)Deprecated. Use MoreObjects.firstNonNull(T, T) instead. This method is scheduled for removal in June 2016.
3static int hashCode(Object… objects)Generates a hash code for multiple values.
4static Objects.ToStringHelper toStringHelper(Class<?> clazz)Deprecated. Use MoreObjects.toStringHelper(Class) instead. This method is scheduled for removal in June 2016
5static Objects.ToStringHelper toStringHelper(Object self)Deprecated. Use MoreObjects.toStringHelper(Object) instead. This method is scheduled for removal in June 2016.
6static Objects.ToStringHelper toStringHelper(String className)Deprecated. Use MoreObjects.toStringHelper(String) instead. This method is scheduled for removal in June 2016.

Methods Inherited

This class inherits methods from the following class −

  • java.lang.Object

Example of Objects Class

Create the following java program using any editor of your choice in say C:/> Guava.

GuavaTester.java

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;
   }
}

Verify the Result

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}

Next Topic:-Click Here

Leave a Reply