Java常用类库:Class Objects

Java常用类库

1、Class Objects

1.1、Objects类的介绍

  Objects类所继承的父类是Object类,创建并使用该类时需要导入的包为:java.util.Objects 。此外,该类中包含的static方法可以用于操作对象或在操作前检查某个条件。

1.2、Objects类的方法

1.2.1、equals方法

  该方法返回值为布尔类型,使用该方法时需要传入两个Object类型(意味着可传入任何类型)的参数,而后将两个参数进行比较大小,如果传入的两个参数都为null,那返回true;如果其中一个参数为null,则返回false;如果两个参数都不为null,且值相等,则返回true,不相等,则返回false;当传入的两个参数的类型不一致时,会返回false。使用该方法的好处是:当你需要用equals方法比较时,不用担心参数存在空值时,抛出NullPointerException 该类异常

  以下是java代码:

public class test {
	public static void main(String[] args) {
		String a = "123";
		String b = "";
		String c = "";
		String d = "123";
		int e = 123;
		int f = 123;
		System.out.println(Objects.equals(a, b));
		System.out.println(Objects.equals(b, c));
		System.out.println(Objects.equals(a, d));
		System.out.println(Objects.equals(e, f));
		System.out.println(Objects.equals(a, e));
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

1.2.2、toString方法

  该方法返回值的是String类型,使用该方法时传入一个参数,参数类型为Object类型,该方法作用是:将传入的Object类型的参数转化为String类型返回出来;如果传入的参数为空值,那返回的值就为空。

  以下是java代码:

public class test {
	public static void main(String[] args) {
		String a = "123";
		String b = null;
		char c = 'a';
		int d = 456;
		System.out.println(Objects.toString(a));
		System.out.println(Objects.toString(b));
		System.out.println(Objects.toString(c));
		System.out.println(Objects.toString(c).getClass());
		System.out.println(Objects.toString(d));
		System.out.println(Objects.toString(d).getClass());
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

  由效果图可以清楚的看出不管传入的是什么类型的参数,最后都会被转化成Sring类型返回,而传入的参数对象b的值为空,那在控制台就会输出为空。

  上述的toString方法还有另一个重载方法,该方法的返回值还是String类型,但使用该方法是=时传入两个参数,第一个参数的类型为Object类型,第二个为String类型,作用是当传入的第一个参数的值不为空时,还是返回该参数调用toString方法所返回的值,当传入的第一个参数的值为空时,则会返回第二个参数调用toString方法返回的值。

  以下是java代码:

public class test {
	public static void main(String[] args) {
		String a = "123";
		String b = null;
		String c = "456" ;
		System.out.println(Objects.toString(a));
		System.out.println(Objects.toString(b));
		System.out.println(Objects.toString(b,a));
		System.out.println(Objects.toString(c));
		System.out.println(Objects.toString(c,a));		
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

1.2.3、isNull方法

  该方法的返回值为布尔类型,使用该方法时传入一个参数,参数类型为Object类型,作用是:判断传入的参数的值是否为空,如果为空,返回true;如果不为空,则返回false。

  以下是java代码:

public class test {
	public static void main(String[] args) {
		String a = "123";
		String b = null;
		System.out.println(Objects.isNull(a));
		System.out.println(Objects.isNull(b));
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

1.2.4、nonNull方法

  该方法的返回值为布尔类型,使用该方法时传入一个参数,参数类型为Object类型,作用是:判断传入的参数的值是否为不为空,如果为不为空,返回true;如果为空,则返回false。

  以下是java代码:

public class test {
	public static void main(String[] args) {
		String a = "123";
		String b = null;
		System.out.println(Objects.nonNull(a));
		System.out.println(Objects.nonNull(b));
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

1.2.5、checkIndex方法

  该方法的返回值是int类型,使用该方法时需要传入两个int类型的参数,作用是:检测你传入的第一个参数的值,是否在0(包括)到第二个你传入的值(不包括)之间,如果在中间,返回第一个参数的值,如果不在中间,则会抛出IndexOutOfBoundsException 该类异常。

  使用该方法后会抛出IndexOutOfBoundsException 该类异常的条件:

  • 第一个参数的值<0
  • 第二个参数的值<0
  • 第一个参数的值>=第二个参数的值

  以下是java代码:

public class test {
	public static void main(String[] args) {
		int a = 5;
		int b = 1;
		int c = 6;
		System.out.println(Objects.checkIndex(b, a));
		System.out.println(Objects.checkIndex(c, a));
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

  由上面效果图可以看出:第一个输出语句是执行了,输出的是第一个参数b的值,而第二个输出语句则抛出了异常,程序直接中断,这是因为参数c的值>参数a的值,满足了上面抛出异常的第三个条件(第一个参数的值>=第二个参数的值)。

  Objects类中判断是否越界的方法除了有checkIndex方法,还有checkFromToIndex方法和checkFromIndexSize方法。

1.2.6、checkFromToIndex方法

  该方法的返回值为int类型,使用该方法时传入三个int类型的参数,作用是:检测你传入的第一个参数的值(包括)到传入的第二个参数的值(不包括)该范围,是否在0(包括)到传入的第三个值(不包括)该范围之间,如果在中间,返回第一个参数的值,如果不在中间,也会抛出IndexOutOfBoundsException 该类异常。

  使用该方法后会抛出IndexOutOfBoundsException 该类异常的条件:

  • 第一个参数的值<0
  • 第三个参数的值<0
  • 第一个参数的值>第二个参数的值
  • 第二个参数的值>第三个参数的值

  以下是java代码:

public class test {
	public static void main(String[] args) {
		int a = 5;
		int b = 2;
		int c = 6;
		System.out.println(Objects.checkFromToIndex(b, a, c));
		System.out.println(Objects.checkFromToIndex(b, c, a));		
	}
}

  以下是控制台输出的效果图:

在这里插入图片描述

  由上面效果图可以看出:第一个输出语句是执行了,输出的是第一个参数b的值,而第二个输出语句则抛出了异常,程序直接中断,这是因为参数c的值>参数a的值,满足了上面抛出异常的第四个条件(第二个参数的值>第三个参数的值)。

  我就介绍checkFromToIndex方法了,checkFromIndexSize方法就不做太具体的介绍了,其实该方法和checkFromToIndex方法区别在传入的第二个参数的作用上,作用也是检测是否越界,不过判断条件变为了第一个参数的值(包括)到(第一个参数的值+第二个参数的值)的和(不包括)该范围,是否在0(包括)到第三个参数的值(不包括)该范围之间。感兴趣的小伙伴可以去百度了解更详细的内容。

  Objects类的方法肯定不止我所陈述的以上几种,还有以下我不太了解的方法:

  (1)requireNonNull方法:( public static <T> T requireNonNull​(T obj)和 public static <T> T requireNonNull​(T obj, String message),这两个方法主要用于方法和构造函数中进行参数验证是否不为null。第一个方法验证出参数为null,会直接抛出NullPointerException该类异常;而第二个方法验证出参数为null,会返回你传入的第二个String类型的非空字符串 );

  (2)compare方法:( public static int compare​(T a, T b, Comparator<? super T> c) );

  (3)requireNonNullElse方法:( public static <T>T requireNonNullElse​(T obj, T defaultObj) );

  (4)requireNonNullElseGet方法:( public static T requireNonNullElseGet​(T obj, Supplier<? extends T> supplier) )。

  以上就是我总结的关于Objects类的相关知识要点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值