Análisis detallado de la clase Objetos de la API de Java explicación detallada

5 Clase de objetos

5.1 Descripción general

consejos: entender el contenido

Al observar la documentación de la API, podemos ver que la definición de la clase Objetos en la documentación de la API es la siguiente:

El paquete de la clase Objetos se encuentra en el paquete java.util, por lo que debe importarse al usarlo. Y la clase Objetos se modifica finalmente, por lo que esta clase no se puede heredar.

La clase Objetos proporciona métodos para algunas operaciones comunes en objetos. Por ejemplo, juzgar si los objetos son iguales, juzgar si los objetos son nulos, etc.

A continuación, echemos un vistazo a la documentación de la API y observemos los miembros de la clase Objetos, de la siguiente manera:

Podemos encontrar que no hay un constructor sin parámetros en la clase Objetos, por lo que no podemos usar la nueva palabra clave para crear objetos Objetos. Al mismo tiempo, podemos encontrar que los métodos proporcionados en la clase Objetos son todos estáticos. Entonces podemos llamar a estos métodos directamente a través del nombre de la clase.

5.2 Métodos comunes

Consejos: céntrate en explicar el contenido.

Introducción a los métodos comunes.

Los métodos comunes en la clase Objetos en los que nos centraremos en aprender son los siguientes:

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

Los métodos comunes en la clase Objetos que veremos son los siguientes:

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 en el método anterior puede entenderse como un tipo de objeto.

Presentación del caso

A continuación, demostremos las características de estos métodos en la clase Objetos a través de algunos casos.

Caso 1 : Demostración de métodos de aprendizaje clave

Pasos de implementación:

  1. Cree una clase de estudiante, proporcione dos variables miembro (nombre, edad); y proporcione el método de construcción sin argumentos y el método de construcción de argumentos correspondientes y el método get/set, y reescriba el método toString y el método igual.

  2. Cree una clase de prueba (ObjectsDemo01), escriba código de prueba en esta clase

Como sigue:

clase de estudiante

public class Student {

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

    // 其他代码略
    ...
        
}

Clase de prueba 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);

    }

}

Caso 2 : Demostración de métodos de necesidad de conocimiento

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);

    }

}

Supongo que te gusta

Origin blog.csdn.net/qq_69748833/article/details/132571734
Recomendado
Clasificación