Método Field equals() en Java con ejemplos

El método equals() de java.lang.reflect .Field se usa para comparar dos objetos de campo. Este método compara dos objetos de campo y devuelve verdadero si ambos objetos son iguales; de lo contrario, devuelve falso. Los dos objetos Field se consideran iguales si y solo si cuando fueron declarados por la misma clase y tienen el mismo nombre y tipo. Este método es muy útil a la hora de depurar las propiedades de los objetos que en realidad son campos de una clase en Java.

Sintaxis:

public boolean equals(Object obj)

Parámetros: este método acepta un parámetro obj que es el objeto de referencia para comparar con este objeto de campo.

Valor de retorno: este método devuelve verdadero si ambos objetos son iguales, de lo contrario, es falso.

Los siguientes programas ilustran el método equals():
Programa 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 class
class User {
  
    public String name;
    public int age;
}
Producción:

Field -> [public java.lang.String User.name]
y
FieldObj -> [public java.lang.String User.name]
son ​​iguales.

Field -> [public int User.age]
y
FieldObj -> [public java.lang.String User.name]
no son iguales.

Programa 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 studentNames
class Class {
  
    public int noOfStudents;
    public String[] studentNames;
}
Producción:

Field -> [public int Class.noOfStudents]
y
FieldObj -> [public int Class.noOfStudents]
son ​​iguales.

Field -> [public int Class.noOfStudents]
y
FieldObj -> [public java.lang.String[] Class.studentNames]
no son iguales.

Field -> [public java.lang.String[] Class.studentNames]
y
FieldObj -> [public int Class.noOfStudents]
no son iguales.

Field -> [public java.lang.String[] Class.studentNames]
y
FieldObj -> [public java.lang.String[] Class.studentNames]
son ​​iguales.

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

Publicación traducida automáticamente

Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *