java.util.Objects工具类示例

java.util.Objects是java 1.7引入的,主要是对对象的一些常用操作,比如compare、equals/deepEquals、hash/hashCode、isNull/nonNull、requiredNonNull、toString这12个常用方法。

Student类

public class Student {
	private String name;
	private Integer age;

	public Student(String name, Integer age) {
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}
	
	@Override
	public int hashCode() {
		return this.getAge();
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		
		Student other = (Student) obj;
		//if (age != other.age)
		//	return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}
}

测试类:

import java.util.Comparator;
import java.util.Objects;
import java.util.function.Supplier;

public class ObjectsTest {

	public static void main(String[] args) {
		Student obj_01 = new Student("zhangsan", 30);
		Student obj_02 = new Student("zhangsan", 20);
		
		// 1
		System.out.println("01. Objects.compare----->" + Objects.compare(obj_01, obj_02, new Comparator<Student>(){
			@Override
			public int compare(Student o1, Student o2) {
				return o1.getAge().compareTo(o2.getAge());
			}
		}));
		
		// 2
		System.out.println("02. Objects.deepEquals----->" + Objects.deepEquals(obj_01, obj_02));
		
		// 3
		System.out.println("03. Objects.equals----->" + Objects.equals(obj_01, obj_02));
		
		// 4
		Object[] obj_04 = new Object[]{obj_01, obj_02};
		System.out.println("04. Objects.hash---->" + Objects.hash(obj_04));
		
		// 5
		System.out.println("05. Objects.hashCode---->" + Objects.hashCode(obj_01));
		
		// 6
		Object obj_06 = null;
		System.out.println("06. Objects.isNull----->" + Objects.isNull(obj_06));
		
		// 7
		Object obj_07 = null;
		System.out.println("07. Objects.nonNull---->" + Objects.nonNull(obj_07));
		
		// 8
		Object obj_08 = 1;
		System.out.println("08. Objects.requireNonNull----->" + Objects.requireNonNull(obj_08));
		
		// 9
		Object obj_09 = 1;
		System.out.println("09. Objects.requireNonNull----->" + Objects.requireNonNull(obj_09, "The object cann't be null."));
		
		// 10
		Object obj_10 = 1;
		System.out.println("10. Objects.requireNonNull----->" + Objects.requireNonNull(obj_10, new Supplier<String>(){
			@Override
			public String get() {
				return "The Object cann't be null...";
			}
		}));
		
		// 11
		Object obj_11 = "123";
		System.out.println("11. Objects.toString----->" + Objects.toString(obj_11));
		
		// 12
		Object obj_12 = "222";
		System.out.println("12. Objects.toString----->" + Objects.toString(obj_12, "234") + "<----->" + Objects.toString(null, "234"));
	}

}

运行结果:

01. Objects.compare----->1
02. Objects.deepEquals----->true
03. Objects.equals----->true
04. Objects.hash---->1911
05. Objects.hashCode---->30
06. Objects.isNull----->true
07. Objects.nonNull---->false
08. Objects.requireNonNull----->1
09. Objects.requireNonNull----->1
10. Objects.requireNonNull----->1
11. Objects.toString----->123
12. Objects.toString----->222<----->234

 

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值