Analyse détaillée de la classe Objects de l'API Java, explication détaillée

5 Classe Objets

5.1 Aperçu

conseils : comprendre le contenu

En regardant la documentation de l'API, nous pouvons voir que la définition de la classe Objects dans la documentation de l'API est la suivante :

Le package de la classe Objects se trouve sous le package java.util, il doit donc être importé lors de son utilisation. Et la classe Objects est modifiée définitivement, cette classe ne peut donc pas être héritée.

La classe Objects fournit des méthodes pour certaines opérations courantes sur les objets. Par exemple, juger si les objets sont égaux, juger si les objets sont nuls, etc.

Jetons ensuite un coup d'œil à la documentation de l'API et examinons les membres de la classe Objects, comme suit :

Nous pouvons constater qu'il n'y a pas de constructeur sans paramètre dans la classe Objects, nous ne pouvons donc pas utiliser le mot-clé new pour créer des objets Objects. Dans le même temps, nous pouvons constater que les méthodes fournies dans la classe Objects sont toutes statiques. Nous pouvons donc appeler ces méthodes directement via le nom de la classe.

5.2 Méthodes courantes

conseils : concentrez-vous sur l’explication du contenu

Introduction aux méthodes courantes

Les méthodes courantes de la classe Objets sur lesquelles nous nous concentrerons sur l'apprentissage sont les suivantes :

public static String toString(Object o) 					// 获取对象的字符串表现形式
public static boolean equals(Object a, Object b)			// 比较两个对象是否相等
public static boolean isNull(Object obj)					// 判断对象是否为null
public static boolean nonNull(Object obj)					// 判断对象是否不为null

Les méthodes courantes de la classe Objects que nous examinerons sont les suivantes :

public static <T> T requireNonNull(T obj)					// 检查对象是否不为null,如果为null直接抛出异常;如果不是null返回该对象;
public static <T> T requireNonNullElse(T obj, T defaultObj) // 检查对象是否不为null,如果不为null,返回该对象;如果为null返回defaultObj值
public static <T> T requireNonNullElseGet(T obj, Supplier<? extends T> supplier)	// 检查对象是否不为null,如果不为null,返回该对象;如果															 // 为null,返回由Supplier所提供的值

T dans la méthode ci-dessus peut être compris comme un type d'objet.

Présentation du cas

Montrons ensuite les caractéristiques de ces méthodes dans la classe Objects à travers quelques cas.

Cas 1 : Démonstration des méthodes clés d’apprentissage

Étapes de mise en œuvre :

  1. Créez une classe d'étudiant, fournissez deux variables membres (nom, âge) et fournissez la méthode de construction sans argument correspondante, la méthode de construction d'argument et la méthode get/set, et réécrivez la méthode toString et la méthode égale.

  2. Créez une classe de test (ObjectsDemo01), écrivez du code de test dans cette classe

Comme suit:

Classe d'étudiant

public class Student {

    private String name ;       // 姓名
    private String age ;        // 年龄

    // 其他代码略
    ...
        
}

Classe de test ObjectsDemo01

public class ObjectsDemo01 {

    public static void main(String[] args) {

        // 调用方法
        method_04() ;

    }

    // 测试nonNull方法
    public static void method_04() {

        // 创建一个学生对象
        Student s1 = new Student("itheima" , "14") ;

        // 调用Objects类中的nonNull方法
        boolean result = Objects.nonNull(s1);

        // 输出结果
        System.out.println(result);

    }

    // 测试isNull方法
    public static void method_03() {

        // 创建一个学生对象
        Student s1 = new Student("itheima" , "14") ;

        // 调用Objects类中的isNull方法
        boolean result = Objects.isNull(s1);

        // 输出结果
        System.out.println(result);

    }

    // 测试equals方法
    public static void method_02() {

        // 创建两个学生对象
        Student s1 = new Student("itheima" , "14") ;
        Student s2 = new Student("itheima" , "14") ;

        // 调用Objects类中的equals方法,比较两个对象是否相等
        boolean result = Objects.equals(s1, s2);     // 如果Student没有重写Object类中的equals方法,此处比较的还是对象的地址值

        // 输出结果
        System.out.println(result);

    }

    // 测试toString方法
    public static void method_01() {

        // 创建一个学生对象
        Student s1 = new Student("itheima" , "14") ;

        // 调用Objects中的toString方法,获取s1对象的字符串表现形式
        String result = Objects.toString(s1);       // 如果Student没有重写Object类中的toString方法,此处还是返回的对象的地址值

        // 输出结果
        System.out.println(result);

    }

}

Cas 2 : Démontrer les méthodes du besoin de savoir

public class ObjectsDemo02 {

    public static void main(String[] args) {

        // 调用方法
        method_03();

    }

    // 演示requireNonNullElseGet
    public static void method_03() {

        // 创建一个学生对象
        Student s1 = new Student("itheima" , "14") ;

        // 调用Objects对象的requireNonNullElseGet方法,该方法的第二个参数是Supplier类型的,查看源码我们发现Supplier是一个函数式接口,
        // 那么我们就可以为其传递一个Lambda表达式,而在Supplier接口中所定义的方法是无参有返回值的方法,因此具体调用所传入的Lambda表达式如下所示
        Student student = Objects.requireNonNullElseGet(s1, () -> {
            return new Student("itcast", "14");
        });

        // 输出
        System.out.println(student);

    }

    // 演示requireNonNullElse
    public static void method_02() {

        // 创建一个学生对象
        Student s1 = new Student("itheima" , "14") ;

        // 调用Objects对象的requireNonNullElse方法
        Student student = Objects.requireNonNullElse(s1, new Student("itcast", "14"));

        // 输出
        System.out.println(student);

    }

    // 演示requireNonNull
    public static void method_01() {

        // 创建一个学生对象
        Student s1 = new Student("itheima" , "14") ;

        // 调用Objects对象的requireNonNull方法
        Student student = Objects.requireNonNull(s1);

        // 输出
        System.out.println(student);

    }

}

Je suppose que tu aimes

Origine blog.csdn.net/qq_69748833/article/details/132571734
conseillé
Classement