Java Field equals()方法及实例

来源:这里教程网 时间:2026-02-17 20:50:39 作者:

Java Field equals()方法及实例

java.lang.reflect .Fieldequals() 方法是用来比较两个字段对象。这个方法比较两个字段对象,如果两个对象相等则返回真,否则返回假。两个字段对象被认为是相等的,当且仅当它们由同一个类声明,并且具有相同的名称和类型。这个方法在调试对象属性时非常有帮助,这些属性实际上是Java中类的字段。

语法

public boolean equals(Object obj)

参数: 该方法接受一个参数 obj ,它是要与这个字段对象进行比较的参考对象。

返回值: 如果两个对象相等,该方法返回真,否则返回假。

以下程序说明了equals()方法:

程序1 :

// Java program to demonstrate the above method  import java.lang.reflect.Field;  public class GFG {      public static void main(String[] args)        throws NoSuchFieldException,               SecurityException    {          // get the array of Field objects        Field[] fields            = User.class.getDeclaredFields();        Field fieldObj            = User.class.getField("name");          // print element of field array        // and compare it with fieldObj        for (int i = 0; i < fields.length; i++) {              // compare the fields with each other            boolean isEquals                = fields[i].equals(fieldObj);            if (isEquals) {                System.out.println(                    "Field -> ["                    + fields[i] + "] and"                    + " FieldObj -> ["                    + fieldObj                    + "] are equal.");            }            else {                System.out.println(                    "Field -> ["                    + fields[i] + "] and"                    + " FieldObj -> ["                    + fieldObj                    + "] are not equal.");            }        }    }}  // User classclass User {      public String name;    public int age;}

输出:

Field -> [public java.lang.String User.name]andFieldObj -> [public java.lang.String User.name]are equal.Field -> [public int User.age]andFieldObj -> [public java.lang.String User.name]are not equal.

程序2 :

// Java program to demonstrate the above method  import java.lang.reflect.Field;  public class GFG {      public static void main(String[] args)        throws NoSuchFieldException,               SecurityException    {          // get the array of Field objects        Field[] fields1            = Class.class.getDeclaredFields();        Field[] fields2            = Class.class.getDeclaredFields();          // print element of field array 1 and compare        // it with fields array 2        for (int i = 0; i < fields1.length; i++) {              for (int j = 0; j < fields2.length; j++) {                  // compare the fields with each other                boolean isEquals                    = fields1[i].equals(fields2[j]);                if (isEquals) {                    System.out.println(                        "Field -> ["                        + fields1[i] + "] and"                        + " FieldObj -> ["                        + fields2[j]                        + "] are equal.");                }                else {                    System.out.println(                        "Field -> ["                        + fields1[i] + "] and"                        + " FieldObj -> ["                        + fields2[j]                        + "] are not equal.");                }            }        }    }}  // Object of Class which contains// noOfStudents and studentNamesclass Class {      public int noOfStudents;    public String[] studentNames;}

输出:

Field -> [public int Class.noOfStudents]andFieldObj -> [public int Class.noOfStudents]are equal.Field -> [public int Class.noOfStudents]andFieldObj -> [public java.lang.String[] Class.studentNames]are not equal.Field -> [public java.lang.String[] Class.studentNames]andFieldObj -> [public int Class.noOfStudents]are not equal.Field -> [public java.lang.String[] Class.studentNames]andFieldObj -> [public java.lang.String[] Class.studentNames]are equal.

参考文献: https://docs.oracle.com/javase/10/docs/api/java/lang/reflect/Field.html#equals(java.lang.Object)

相关推荐