Java-API简析_java.util.Objects类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/133463511
出自【进步*于辰的博客】

因为我发现目前,我对Java-API的学习意识比较薄弱,需要慢慢习惯使用Java-API,乃至剖析源码来提升自己的源码阅读能力和编码素质。
大家如果需要Java-API文档,我上传了【https://download.csdn.net/download/m0_69908381/87691693】。

文章目录

  • 1、概述
  • 2、方法摘要
    • 2.1 static int checkFromIndexSize​(int fromIndex, int size, int length)
    • 2.2 static int checkFromToIndex​(int fromIndex, int toIndex, int length)
    • 2.3 static int checkIndex​(int index, int length)
    • 2.4 static <T> int compare​(T a, T b, Comparator<? super T> c)
    • 2.5 static boolean deepEquals​(Object a, Object b)
    • 2.6 static boolean equals​(Object a, Object b)
    • 2.7 static int hash​(Object... values)
    • 2.8 static int hashCode​(Object o)
    • 2.9 static boolean isNull​(Object obj)
    • 2.10 static boolean nonNull​(Object obj)
    • 2.11 static `<T>` T requireNonNull​(T obj)
    • 2.12 static `<T>` T requireNonNull​(T obj, String message)
    • 2.13 static `<T>` T requireNonNull​(T obj, Supplier<String> messageSupplier)
    • 2.14 static `<T> `T requireNonNullElse​(T obj, T defaultObj)
    • 2.15 static `<T>` T requireNonNullElseGet​(T obj, Supplier<? extends T> supplier)
    • 2.16 static String toString​(Object o)
    • 2.17 static String toString​(Object o, String nullDefault)

1、概述

继承关系:

  • java.lang.Object
    • java.util.Objects

public final class Objects extends Object

此类包含static实用程序方法,用于操作对象或在操作前检查某些条件。 这些实用程序包括nullnull方法,用于计算对象的哈希代码,返回对象的字符串,比较两个对象,以及检查索引或子范围值是否超出范围。

API Note:
静态方法如checkIndex(int, int)checkFromToIndex(int, int, int)checkFromIndexSize(int, int, int)提供用于如果对应于索引和子范围的值超出边界的检查的便利性。 这些静态方法的变体支持定义运行时异常以及相应的异常详细消息,这些消息在值超出范围时抛出。 此类方法接受功能接口参数,即BiFunction实例,它将超出范围的值映射到运行时异常。 将这些方法与作为 lambda 表达式,方法引用或捕获值的类的参数结合使用时应小心。 在这种情况下,与功能接口分配相关的捕获成本可能超过检查边界的成本。

从以下版本开始:
1.7

2、方法摘要

2.1 static int checkFromIndexSize​(int fromIndex, int size, int length)

检查是否在子范围从 fromIndex (包括)到 fromIndex + size (不包括)是范围界限内 0 (包括)到 length (不包括)。

2.2 static int checkFromToIndex​(int fromIndex, int toIndex, int length)

检查是否在子范围从 fromIndex (包括)到 toIndex (不包括)是范围界限内 0 (包括)到 length (不包括)。

2.3 static int checkIndex​(int index, int length)

检查 index是否在 0 (含)到 length (不包括)范围内。

2.4 static int compare​(T a, T b, Comparator<? super T> c)

如果参数相同则返回0,否则返回 c.compare(a, b)

2.5 static boolean deepEquals​(Object a, Object b)

如果参数是深层相等,返回 true。

2.6 static boolean equals​(Object a, Object b)

如果参数相等,返回 true。

2.7 static int hash​(Object… values)

为一系列输入值生成哈希码。

2.8 static int hashCode​(Object o)

返回“非”的哈希码,0为 null的论点。

2.9 static boolean isNull​(Object obj)

如果提供的参考是 null ,返回 true。

2.10 static boolean nonNull​(Object obj)

如果提供的参考是非 null,返回 true。

2.11 static <T> T requireNonNull​(T obj)

检查指定的对象引用是否不是 null
说明:
看源码。
在这里插入图片描述

2.12 static <T> T requireNonNull​(T obj, String message)

检查指定的对象引用是否为null ,如果是,则抛出自定义的 NullPointerException 。

2.13 static <T> T requireNonNull​(T obj, Supplier messageSupplier)

检查指定的对象引用是否为null ,如果是,则抛出自定义的 NullPointerException 。

2.14 static <T> T requireNonNullElse​(T obj, T defaultObj)

如果它是非 null ,则返回第一个参数,否则返回第二个参数(非null值)。

2.15 static <T> T requireNonNullElseGet​(T obj, Supplier<? extends T> supplier)

如果它是非 null ,则返回第一个参数,否则返回 supplier.get()(非null值) 。

2.16 static String toString​(Object o)

返回调用的结果 toString()。对于非null参数, "null"null的说法。
说明:
先看源码。
在这里插入图片描述
关于valueOf(),见String类的第2.64项。

2.17 static String toString​(Object o, String nullDefault)

如果第一个参数不是 null ,则返回在第一个参数上调用 toString()的结果,否则返回第二个参数。
说明:
先看源码。
在这里插入图片描述


本文暂缓更新。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Polygon Miden交易模型:Actor模式 + ZKP => 并行 + 隐私

1. 引言 前序博客&#xff1a; Polygon Miden&#xff1a;扩展以太坊功能集的ZK-optimized rollupPolygon Miden zkRollup中的UTXO账户混合状态模型 Polygon Miden为&#xff1a; ZK-optimized rollup由客户端生成证明完善Polygon ZK系列解决方案&#xff0c;致力于成为网络…

消息队列-RabbitMQ(二)

接上文《消息队列-RabbitMQ&#xff08;一&#xff09;》 Configuration public class RabbitMqConfig {// 消息的消费方json数据的反序列化Beanpublic RabbitListenerContainerFactory<?> rabbitListenerContainerFactory(ConnectionFactory connectionFactory){Simple…

数据结构-哈希表

系列文章目录 1.集合-Collection-CSDN博客​​​​​​ 2.集合-List集合-CSDN博客 3.集合-ArrayList源码分析(面试)_喜欢吃animal milk的博客-CSDN博客 4.数据结构-哈希表_喜欢吃animal milk的博客-CSDN博客 文章目录 目录 系列文章目录 文章目录 前言 一 . 什么是哈希表&a…

【教学类-38-02】20230724京剧脸谱2.0——竖版(小彩图 大面具)(Python 彩图彩照转素描线描稿)

结果展示 背景需求&#xff1a; 前文体运用Python颜色提取功能&#xff0c;将“京剧脸谱”彩色图片转化为线描图案。 【教学类-38】20230724京剧脸谱1.0——横版“彩图线图等大”&#xff08;Python 彩图彩照转素描线描稿&#xff09;_reasonsummer的博客-CSDN博客 存在问题&…

计算机图形学、贝塞尔曲线及绘制方法、反走样问题的解决(附完整代码)

贝塞尔曲线 1. 本次作业实现的函数及简单描述&#xff08;详细代码见后&#xff09;2. 与本次作业有关的基础知识整理3. 代码描述&#xff08;详细&#xff09;4. 完整代码5. 参考文献 &#xff08;本篇为作者学习计算机图形学时根据作业所撰写的笔记&#xff0c; 如有同课程请…

数字时代古文的传承———云南文化瑰宝“爨文化“(我为家乡发声)

文章目录 前言⭐ "爨"意味着什么&#xff0c;究竟何为"爨文化"&#xff1f;⭐ 爨文化鲜明的特点1.经济生活2.政治生活3.文化艺术 ⭐ 数字时代古文的传承与传播1.藏品数字化2.建立数据库3.传播大众化 前言 爨文化是继古滇文化之后崛起于珠江正源南盘江流域…

根据GWAS数据估算样本量N和使用千人基因组填充maf的参考文献

https://github.com/GenomicSEM/GenomicSEM/wiki/2.1-Calculating-Sum-of-Effective-Sample-Size-and-Preparing-GWAS-Summary-Statistics

【SQL】mysql创建定时任务执行存储过程--20230928

1.先设定时区 https://blog.csdn.net/m0_46629123/article/details/133382375 输入命令show variables like “%time_zone%”;&#xff08;注意分号结尾&#xff09;设置时区&#xff0c;输入 set global time_zone “8:00”; 回车,然后退出重启&#xff08;一定记得重启&am…

【C++】手撕vector(vector的模拟实现)

手撕vector目录&#xff1a; 一、基本实现思路方针 二、vector的构造函数剖析&#xff08;构造歧义拷贝构造&#xff09; 2.1构造函数使用的歧义问题 2.2 vector的拷贝构造和赋值重载&#xff08;赋值重载不是构造哦&#xff0c;为了方便写在一起&#xff09; 三、vector的…

Apollo自动驾驶系统概述(文末参与活动赠送百度周边)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

算法基础课第二部分

算法基础课 第四讲 数学知识AcWing1381. 阶乘(同余&#xff0c;因式分解) 质数AcWing 866. 质数的判定---试除法AcWing 868. 质数的判定---埃氏筛AcWing867. 分解质因数---试除法AcWing 197. 阶乘---分解质因数---埃式筛 约数AcWing 869. 求约数---试除法AcWing 870. 约数个数-…

云可观测性安全平台——掌动智能

云可观测性安全平台是一个跨架构、跨平台的可观测性方案&#xff0c;实现对云环境下的细粒度数据可视化&#xff0c;满足安全部门对云内部安全领域的多场景诉求&#xff0c;包括敏感数据动态监管、云网攻击回溯分析、攻击横移风险监控、云异常流量分析。本文将介绍掌动智能云可…

腾讯云中使用ubuntu安装属于自己的overleaf

在自己的云服务器上安装overleaf的需求是从写论文开始的&#xff0c;总担心自己的论文放在一个网站上被泄露&#xff0c;所以想要在自己的服务器上安装自己的overleaf&#xff0c;正好手边有一个云服务器&#xff0c;现在开始。 配置腾讯云 因为使用overleaf的优势就是在不同…

SQLAlchemy常用数据类型

目录 SQLAlchemy常用数据类型 代码演示 代码分析 SQLAlchemy常用数据类型 SQLAlchemy 是一个Python的SQL工具库和对象关系映射(ORM)工具&#xff0c;它提供了一种在Python中操作数据库的高效方式。下面是SQLAlchemy中常用的一些数据类型&#xff1a; Integer&#xff1a;整形&…

【数据结构】选择排序 堆排序(二)

目录 一&#xff0c;选择排序 1&#xff0c;基本思想 2&#xff0c; 基本思路 3&#xff0c;思路实现 二&#xff0c;堆排序 1&#xff0c;直接选择排序的特性总结&#xff1a; 2&#xff0c;思路实现 3&#xff0c;源代码 最后祝大家国庆快乐&#xff01; 一&#xf…

数组和切⽚ - Go语言从入门到实战

数组和切⽚ - Go语言从入门到实战 数组的声明 package main import "fmt" func main() { var a [3]int //声明并初始化为默认零值 a[0] 1 fmt.Println("a:", a) // 输出: a: [1 0 0] b : [3]int{1, 2, 3} //声明同时初始化 fmt.Println("b:…

Python3数据科学包系列(二):数据分析实战

Python3中类的高级语法及实战 Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案 Python3数据科学包系列(一):数据分析实战 Python3数据科学包系列(二):数据分析实战 一&#xff1a;通过read_table函数读取数据创建(DataFrame)数据框 #…

C++指针的使用

文章目录 1.C指针1.1 定义指针1.2 使用指针 2.空指针和野指针2.1 空指针2.2 野指针 3.指针所占空间4.使用const修饰指针4.1 const修饰指针4.2 const修饰常量4.3 const 既修饰指针也修饰常量 5.指针操作数组6.指针做函数参数7.使用指针知识实现冒泡排序 1.C指针 指针其实就是一…

mysql主从同步

原理 概述 将主库的数据变更同步到从库&#xff0c;从而保证主库和从库数据一致 数据备份&#xff0c;失败迁移&#xff0c;读写分离&#xff0c;降低单库读写压力 原理 主数据库设置 docker run --restartalways --name mysql-master -p 3306:3306 -v /home/apps/mysql-…

偏微分方程的人工智能

9 偏微分方程的人工智能 在本节中&#xff0c;我们详细介绍了用于解决偏微分方程&#xff08;Partial Differential Equations&#xff0c;PDEs&#xff09;的人工智能领域的进展。我们在第9.1节中概述了PDE建模的一般形式&#xff0c;并阐述了在这个背景下使用机器学习方法的…