进阶day01-Objects类的equals方法
This commit is contained in:
37
javaSE-day01/src/com/inmind/object01/Demo03.java
Normal file
37
javaSE-day01/src/com/inmind/object01/Demo03.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package com.inmind.object01;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/*
|
||||
Objects工具类的equals方法
|
||||
static boolean equals(Object a, Object b) 返回 true如果参数相等,彼此 false否则。
|
||||
|
||||
源码:
|
||||
public static boolean equals(Object a, Object b) {
|
||||
return (a == b) || (a != null && a.equals(b));
|
||||
}
|
||||
|
||||
注意:Objects工具类的equals方法是没有对任何自定义类的对象的内容进行比较的功能的!!!它还是
|
||||
借用传入的形参一 a的equals方法!!!!
|
||||
|
||||
Objects类的equals方法的作用:在实现判断2个对象是否相同的基础上,有效地避免空指针异常
|
||||
|
||||
注意:如果一个自定义类的对象,在比较属性是否相同则为同一个对象时,必定要重写equals方法
|
||||
*/
|
||||
public class Demo03 {
|
||||
public static void main(String[] args) {
|
||||
Person p1 = new Person("刘备", 18);
|
||||
Person p2 = new Person("刘备", 18);
|
||||
//普通写法:
|
||||
System.out.println(p1.equals(p2));//true
|
||||
|
||||
// p1 = null;
|
||||
/*if (p1 != null) {//健壮性地非空判断
|
||||
System.out.println(p1.equals(p2));
|
||||
}*/
|
||||
//工具类写法
|
||||
System.out.println(Objects.equals(p1, p2));//false
|
||||
|
||||
System.out.println("程序结束");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user