首页 > 其他分享 >Objects

Objects

时间:2024-11-14 23:08:06浏览次数:1  
标签:name s1 Objects Student null public

概述

Objects 是一个工具类, 提供了一些方法去完成一些功能.

Objects 类中的常见的成员方法:


图1 Objects 类中的常见的成员方法

equals 方法

程序示例:

Javabean 类:

public class Student {
    private String name;
    private int age;


    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    public int getAge() {
        return age;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
}

测试类:

public class Demo1 {
    public static void main(String[] args) {
        // 1. 创建学生类的对象
        Student s1 = null;
        Student s2 = new Student("zhangsan", 23);

        // 2. 比较两个对象的属性值是否相同
        boolean result = s1.equals(s2);  // NullPointerException: Cannot invoke "Object_demo.Student.equals(Object)" because "s1" is null
        System.out.println(result);
    }
}

Java 中, 不能用 null 调用方法.

改写:

public class Demo1 {
    public static void main(String[] args) {
        // 1. 创建学生类的对象
        Student s1 = null;
        Student s2 = new Student("zhangsan", 23);

        // 2. 比较两个对象的属性值是否相同
        if (s1 != null) {
            boolean result = s1.equals(s2);
            System.out.println(result);
        } else {
            System.out.println("调用者为空");  // 调用者为空
        }
    }
}

改写测试类:

import java.util.Objects;

public class Demo1 {
    public static void main(String[] args) {
        // 1. 创建学生类的对象
        Student s1 = null;
        Student s2 = new Student("zhangsan", 23);

        // 2. 比较两个对象的属性值是否相同
        boolean result = Objects.equals(s1, s2);
        System.out.println(result);  // false

        // 细节:
        // 1. 方法的底层会判断 s1 是否为 null, 如果为 null, 直接返回 false
        // 2. 如果 s1 不为 null, 那么就利用 s1 再次调用 equals 方法
        // 3. 此时 s1 是 Student 类型, 所以最终还是会调用 Student 中的 equals 方法. 
        // 如果没有重写, 比较地址值, 如果重写了, 就比较属性值. 
    }
}

图1

isNull, nonNull 方法

程序示例:

public class Demo1 {
    public static void main(String[] args) {
        // public static boolean isNull(Obiect obi) 判断对象是否为 null, 为 nul1 返回 true, 反之返回 false

        Student s3 = new Student();
        Student s4 = null;

        System.out.println(Objects.isNull(s3)); // false
        System.out.println(Objects.isNull(s4)); // true
        System.out.println(Objects.nonNull(s3)); // true
        System.out.println(Objects.nonNull(s4)); // false
    }
}

图1

标签:name,s1,Objects,Student,null,public
From: https://www.cnblogs.com/Chengkai730/p/18547040

相关文章

  • gem5 学习三 —— gem5 Objects
    ObjectSimobject类是一个非常复杂但又十分重要的类。它在Gem5中占有及其重要的地位。gem5的模块化设计是围绕SimObject类型构建的。模拟系统中的大多数组件都是SimObjects的子类,如CPUs,caches,memory,memorycontroller等。gem5将所有这些对象从其C++实现导出到P......
  • 基于Arcgis10.8+VS2019的ArcObjectsSDKNet安装
    基于Arcgis10.8+VS2019的ArcObjectsSDKNet安装首先Arcgis10.8和Arcgis10.8.1所需要的ArcObjectsSDKNet版本是不同的在使用10.8的ArcObjectsSDKNet在Arcgis10.8.1的基础上是安装不了的,会检测不到在安装Arcgis10.8的基础上,下载Arcgis10.8的ArcObjectsSDKNet,解压后进行安装连接......
  • ArkTS 的内存空间详解:从 SemiSpace 到 HugeObjectSpace
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。引言ArkTS作为鸿蒙系统的开发语言,提......
  • Laravel报错Call to undefined function Termwind\ValueObjects\mb_strimwidth()解
    Laravel报错CalltoundefinedfunctionTermwind\ValueObjects\mb_strimwidth()通常是因为php的mbstring扩展没有打开解决办法:搜索extension=mbstring去掉前面的;注释符即可,需要注意的是,Laravel开发环境通常是通过phpartisanserve命令运行在命令行中的,所以应该修改php环境......
  • 升级Unity后产生的Objects内存泄露现象
    1)升级Unity后产生的Objects内存泄露现象2)能否使用OnDemandRenderingAPI来显示帧率3)Unity闪退问题4)配置表堆内存如何优化这是第405篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。UWA社区主页:community.uwa4d......
  • ECE 4122/6122 OpenGL with OBJ files and Multiple Objects
    ECE4122/6122Lab3:OpenGLwithOBJfilesandMultipleObjects(100pts)Category:3DGraphicsDue:TuesdayOctober22th,2023by11:59PMObjective:Tocreateadynamic3Dgraphicsapplicationusinglighting,shading,modeltransformations,andkeyboa......
  • 【常用API】Object、Objects、包装类、StringBuilder、StringBuffer、StringJoiner
    API:应用程序编程接口就是java帮我们已经写好了一些程序,如:类、方法等,直接拿过来解决一些问题。1.Object它常用的方法:toString():返回对象的字符串形式;存在意义,让子类重写,以便返回子类对象的内容。equals():默认比较两个对象的地址是否相等;存在意义,让子类重写,以便用......
  • 学习011-03-03 Relationships Between Persistent Objects in Code and UI(代码和用户
    RelationshipsBetweenPersistentObjectsinCodeandUI(代码和用户界面中持久对象之间的关系)Whendesigningabusinessmodel,itcanbenecessarytosetspecificrelationshipsbetweenbusinessobjects.Thistopicdescribeshowtosettheserelationshipsbe......
  • 【代码分析1-视频目标分割AOT-数据处理部分】Associating Objects with Transformers
    AOT代码分析前置阅读代码模块代码分析1静态数据处理1.1引入包1.2继承Dataset类1.3数据初始化1.4获取数据长度1.5获取数据2视频数据处理2.1数据初始化-父类VOSTrain2.2数据初始化-子类DAVIS2017_Train2.3获得数据长度2.4获得数据前置阅读papergithub文献......
  • 芯片闪存(FLASH)空间不够报错——.\Objects\SL_DEMO.axf: Error: L6406E: No space in
    目录问题描述:问题解决:问题分析:解决方法:1,2,问题描述:当出现这种报错的时候:.\Objects\SL_DEMO.axf:Error:L6406E:Nospaceinexecutionregionswith.ANYselectormatchingdrv_iap.o(i.EraseFlashSector).。是由于芯片闪存(FLASH)空间不够导致的问题解决:问题分析......