Java - Character.Subset equals() 方法



Java 的 Character.Subset equals() 方法用于比较两个 Subset 对象是否相等。只有当 this 对象和参数对象的引用相同,该方法的结果才为 true

由于我们使用 final 访问修饰符修饰此方法,因此 Subset 类所有子类的返回值都将保证相同。

注意 - 此方法使用继承的概念来创建 Subset 对象,因为 Character.Subset 类中的构造函数具有受保护的访问权限。因此,Character.Subset 类扩展自另一个公共类,该类的构造函数使用 super() 方法调用创建对象的 Object 类。

语法

以下是 Java Character.Subset equals() 方法的语法

public final boolean equals(Object obj)

参数

  • obj - 这是要比较的引用对象。

返回值

如果此对象与 obj 参数相同,则此方法返回 true,否则返回 false。

比较 Subset 对象是否相等的示例

在下面的示例中,我们实例化 CharacterSubsetDemo 类对象。然后在这些对象上调用 Java Character.Subset equals() 方法以检查它们是否相等。

package com.tutorialspoint;

public class CharacterSubsetDemo extends Character.Subset {
  
   // constructor of super class
   CharacterSubsetDemo(String s) {
      super(s); // invokes the immediate parent class: Object
   }
   public static void main(String[] args) {
      CharacterSubsetDemo obj1 = new CharacterSubsetDemo("admin");
      CharacterSubsetDemo obj2 = new CharacterSubsetDemo("webmaster");
      CharacterSubsetDemo obj3 = new CharacterSubsetDemo("administrator");

      // compares Subset objects for equality
      boolean retval = obj1.equals(obj1);
      System.out.println("Object obj1 is equal to obj1 ? " + retval);
      retval = obj2.equals(obj1);
      System.out.println("Object obj1 is equal to obj2 ? " + retval);
      retval = obj3.equals(obj1);
      System.out.println("Object obj1 is equal to obj3 ? " + retval);
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Object obj1 is equal to obj1 ? true
Object obj1 is equal to obj2 ? false
Object obj1 is equal to obj3 ? false

比较相同的 Subset 对象是否相等的示例

另一个示例,使用 equals() 方法检查两个给定的 Subset 对象(一个对象引用另一个 Subset 对象)是否相等,如下所示。

package com.tutorialspoint;

public class CharacterSubsetDemo extends Character.Subset {
  
   // constructor of super class
   CharacterSubsetDemo(String s) {
      super(s); // immediate parent class invoked to create object
   }
   public static void main(String[] args) {
      CharacterSubsetDemo obj1 = new CharacterSubsetDemo("admin");
      CharacterSubsetDemo obj2 = obj1;

      // compares Subset objects for equality
      boolean val = obj2.equals(obj1);
      System.out.println("Object 1 is equal to Object 2 ? " + val);
   }
}

输出

让我们编译并运行上面的程序,输出显示为:

Object 1 is equal to Object 2 ? true

比较不同的 Subset 对象是否相等的示例

以下另一个示例展示了 Java Character.Subset equals() 方法的工作原理。两个不同的 Subset 对象使用相同的字符串值实例化;在这些对象上调用该方法以检查它们是否相等。由于对象引用不同,即使它们包含相同的值,该方法也会返回 false。

package com.tutorialspoint;

public class CharacterSubsetDemo extends Character.Subset {   
   CharacterSubsetDemo(String s) {
      super(s);
   }
   public static void main(String[] args) {
      CharacterSubsetDemo obj1 = new CharacterSubsetDemo("23AS&%");
      CharacterSubsetDemo obj2 = new CharacterSubsetDemo("23AS&%");

      // compares Subset objects for equality
      boolean value = obj2.equals(obj1);
      System.out.println("Object 1 is equal to Object 2 ? " + value);
   }
}

输出

一旦我们编译并运行上面的程序,输出将显示如下。即使字符串名称相同,输出也为 false:

Object 1 is equal to Object 2 ? false

比较 Subset 对象与 Null 是否相等的示例

以下示例展示了当对象参数作为 null 传递给该方法时的用法:

public class CharacterSubsetDemo extends Character.Subset {    
   CharacterSubsetDemo(String s) {
      super(s);
   }
   public static void main(String[] args) {
      CharacterSubsetDemo obj1 = new CharacterSubsetDemo(null);
      CharacterSubsetDemo obj2 = new CharacterSubsetDemo("23AS&%");

      // compares Subset objects for equality
      boolean res_value = obj2.equals(obj1);
      System.out.println("Object 1 is equal to Object 2 ? " + res_value);
   }
}

异常

程序编译并运行后,输出将打印以下 NullPointerException:

Exception in thread "main" java.lang.NullPointerException: nameat java.lang.Character$Subset.<init>(Character.java:615)
   at CharacterSubsetDemo.<init>(CharacterSubsetDemo.java:6)
   at CharacterSubsetDemo.main(CharacterSubsetDemo.java:11)
java_lang_character.subset.htm
广告