Guava Objects类的使用方式【Guava学习笔记】

本文介绍了 Guava 库中 Objects 类的功能与用法,包括如何判断对象是否相等、生成哈希码及对象字符串表示等内容,并对部分已弃用的方法进行了说明。
package com.lwl.guava.Objects;

import com.google.common.base.Objects;

/**
 * Objects类提供适用于所有对象,如equals, hashCode等辅助函数
 * 说实话,这个类没什么卵用
 *
 */
public class UserObjects {
	
	public static void main(String[] args) {
		UserObjects u1 = new UserObjects("jack", "男", 22);
		UserObjects u2 = new UserObjects("jack", "男", 22);
		
		//确定两个可能是空的对象是否相等。
		boolean flag = Objects.equal(u1, u2);
		System.out.println("这2个值是否相同:"+flag);
		
		//不推荐使用。使用MoreObjects.firstNonNull(T,T)来代替。定于2016年6月去除该方法。
		//其实这个方法的意思就是如果第一个值是空值,那么取第二个值,如果第二个值也是空值,则报空指针错误
		UserObjects u3 = Objects.firstNonNull(u1, u2);
		
		//生成多个值的哈希码。
		//后台是通过数组的方式获取hashCode
//		int hashCode = Objects.hashCode(u1,u2);
		System.out.println(u1.hashCode());
		System.out.println(Objects.hashCode(u1));
		System.out.println(u2.hashCode());
		System.out.println(Objects.hashCode(u2));
		System.out.println(Objects.hashCode(u1,u2));
		System.out.println(u1.hashCode()+u2.hashCode());
		
		//不推荐使用。使用MoreObjects.toStringHelper(Object)来代替。定于2016年6月去除该方法。
		/**
		 *  toStringHelper(Class<?> clazz)
		 *  toStringHelper(Object self)
		 *  toStringHelper(String className)
		 */
		//其实没什么卵用,还不如自己重写toString()方法
		//但是等你使用第三方架包的时候,你想打印日志输出该对象中的信息,可以尝试这种方式
		String toStr = Objects.toStringHelper(u3).add("name", "jack").add("age", 11).toString();
		System.out.println(toStr);
	}
	
	
	private String name;
	private String sex;
	private int age;
	
	public UserObjects(){}
	public UserObjects(String name,String sex,int age){
		this.name = name;
		this.sex = sex;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	
}


其实这个类真的没什么卵用,而且toStringHelper()也已经被移除掉以后,附上该类对应的方法




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值