Objects

news/2024/11/14 23:23:01/文章来源:https://www.cnblogs.com/Chengkai730/p/18547040

概述

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 nullSystem.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, 反之返回 falseStudent s3 = new Student();Student s4 = null;System.out.println(Objects.isNull(s3)); // falseSystem.out.println(Objects.isNull(s4)); // trueSystem.out.println(Objects.nonNull(s3)); // trueSystem.out.println(Objects.nonNull(s4)); // false}
}

图1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/833705.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目冲刺-3

一、昨日已完成的任务 学习有关springboot,vue等前后端知识,明确要开发的功能,初步搭好底层框架,做完了登录注册功能。 今日计划完成的任务 完善数据库和底层框架,学习有关知识,继续尝试做功能接口。 工作中遇到的困难 成员的前后端基础较差,需要花大量时间入门,目前做…

BigInteger

对象一旦创建, 内部记录的值是不能发生改变的.程序示例: public class demo1 {public static void main(String[] args) {/** public BigInteger(int num, Random rnd) 获取随机大整数, 范围: [0~ 2 的 num 次方 -1]* public BigInteger(String val) 获取指定的大整数* public …

Cuda 驱动安装

Cuda 驱动的安装方法。Author: ACatSmiling Since: 2024-11-13CUDA(Compute Unified Device Architecture):是 NVIDIA 推出的一种并行计算平台和编程模型,它允许开发者利用 NVIDIA GPU(图形处理器)的强大计算能力进行通用计算,而不仅仅局限于图形处理。简单来说,CUDA 提…

[RoarCTF 2019]Easy Java 1

[RoarCTF 2019]Easy Java 1 打开实例发现登录框,尝试万能密码admin or 1=1#后无果注意到登录框下有个help,点击发现文件读取显示文件notfound,文件未找到,怀疑是请求方法问题,尝试POST请求发现能成功下载,确定这道题为任意文件下载 打开help.docx,显示看来文件不在这里,…

【linux日志】web日志分析

WEB正确日志格式分析#日志统计举例[root@master ~]# cat /etc/httpd/logs/access_log |awk {print $1}#对IP排序[root@master ~]# cat /etc/httpd/logs/access_log |awk {print $1}|sort#打印每一个重复出现IP的次数,[root@master ~]# cat /etc/httpd/logs/access_log |awk {p…

SpringBoot配置多数据源实战

SpringBoot配置多数据源实战@目录SpringBoot配置多数据源实战需求来源:简单粗暴3步使用步骤:思路讲解:目录结构:使用注意点: SpringBoot配置多数据源实战 需求来源: 当相关业务场景想实现同时操作2个甚至多个不同数据库表的时候,就需要配置多个数据源。简单粗暴3步使用步…

HTTP 协议学习笔记

HTTP 协议学习笔记 带新手走进神秘的HTTP协议 - 超超boy - 博客园 HTTP 首部字段详细介绍 - 超超boy - 博客园 《白帽子讲 web 安全(第二版)》HTTP 默认的端口号为 80,HTTPS 的端口号为 443。HTTP 是无状态协议,它不对之前发生过的请求和响应的状态进行管理。 可以使用 Coo…

自主研发RPA,基于uiautomatorviewer的自动化代码生成器,一键生成Java代码和Cucumber描述文件

介绍 基于UI Automator进行二次开发,让你不懂开发也能编写自动化测试代码, 一边生成代码一边Debug,毫不费力写出完美的自动化测试代码 。该工具集成了Tomcat使得添加新的功能的时候使用HTML+API进行开发,降低了开发难度;集成了Derby数据库,测试用例持久化到数据库。 软件…

关于NVIDIA Jetson AGX Xavier刷机过程记录

刷机记录,再刷机忘记了回来看看~主机电脑安装ubuntu20.04虚拟机,NVIDIA sdkmanager,主机端连上路由器提供的wifi。再将Jetson接上电源,但不开机。拿出附带的typec——USB数据线,typec端连上图中的typec口,USB连上主机电脑。找出一根网线,一端连接Jetson,另一端连接步骤…

shell编程 - 基础篇

1. Shell简介Shell是一个C语言编写的脚本语言,它是用户与Linux的桥梁,用户输入命令交给Shell处理,Shell将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。2. Shell编程语言必知必会shell命令解释器:bash编程常用命令解释器.命令解释器bash 目前应用最广泛一…

第四届光学与机器视觉国际学术会议(ICOMV 2025) 2025 4th International Conference on Optics and Machine Vision

第四届光学与机器视觉国际学术会议(ICOMV 2025)2025 4th International Conference on Optics and Machine Vision重要信息官网:https://ais.cn/u/vEbMBz

【os】操作系统是怎样一步步接收键盘按键的?

你有没有想过,按下键盘按键后,相应的字符是怎么一步步显示在屏幕上的? 首先来看硬件部分,你至少应该能想到必须得有键盘和CPU:之后呢,cpu是怎么知道有键盘按下呢? 为了让键盘按下按键后能通知到CPU,需要借助键盘控制器,keyboard controller,这当然也是硬件:当按下按…