鍍金池/ 教程/ Java/ Guava Objects類
Guava原語工具
Guava集合工具
Guava Chars類
Guava Shorts類
Guava CharMatcher類
Guava BigIntegerMath類
Guava Range類
Guava Bimap接口
Guava緩存工具
Guava Longs類
Guava Multiset接口
Guava Table接口
Guava Optional類
Guava LongMath類
Guava Spiltter類
Guava Preconditions類
Guava數(shù)學(xué)工具
Guava Ints類
Guava Ordering類
Guava Throwables類
Guava字符串工具
Guava Objects類
Guava Booleans類
Guava教程
Guava Bytes類
Guava CaseFormat類
Guava環(huán)境設(shè)置
Guava Doubles類
Guava Joiner類
Guava Multimap類
Guava Floats類
Guava IntMath類

Guava Objects類

Objects類提供適用于所有對(duì)象,如equals, hashCode等輔助函數(shù)

類聲明

以下是com.google.common.base.Objects類的聲明:

@GwtCompatible
public final class Objects
   extends Object

類方法

S.N. 方法及說明
1 static boolean equal(Object a, Object b)
確定兩個(gè)可能是空的對(duì)象是否相等。
2 static <T> T firstNonNull(T first, T second)
不推薦使用。使用MoreObjects.firstNonNull(T,T)來代替。定于2016年6月去除該方法。
3 static int hashCode(Object... objects)
生成多個(gè)值的哈希碼。
4 static Objects.ToStringHelper toStringHelper(Class<?> clazz)
不推薦使用。使用MoreObjects.toStringHelper(Class)來代替。定于2016年6月去除該方法。
5 static Objects.ToStringHelper toStringHelper(Object self)
不推薦使用。使用MoreObjects.toStringHelper(Object)來代替。定于2016年6月去除該方法。
6 static Objects.ToStringHelper toStringHelper(String className)
不推薦使用。使用MoreObjects.toStringHelper(String)來代替。定于2016年6月去除該方法。

方法繼承

這個(gè)類從以下類繼承的方法:

  • java.lang.Object

Objects 示例

使用所選擇的編輯器,創(chuàng)建下面的java程序比如 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;
   }
}

驗(yàn)證結(jié)果

使用javac編譯器編譯如下類

C:\Guava>javac GuavaTester.java

現(xiàn)在運(yùn)行GuavaTester看到的結(jié)果

C:\Guava>java GuavaTester

看到結(jié)果。

false
85871
Student{Name=Mahesh Parashar, Class=VI, Roll No=1}

上一篇:Guava Multimap類下一篇:Guava教程