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

news2024/11/24 3:20:32

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
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、概述

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的说法。

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

如果第一个参数不是 null ,则返回在第一个参数上调用 toString()的结果,否则返回第二个参数。


本文暂缓更新。

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

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

相关文章

人工智能的学习算法

1956年&#xff0c;几个计算机科学家相聚在达特茅斯会议&#xff0c;提出了 “人工智能” 的概念&#xff0c;梦想着用当时刚刚出现的计算机来构造复杂的、拥有与人类智慧同样本质特性的机器。其后&#xff0c;人工智能就一直萦绕于人们的脑海之中&#xff0c;并在科研实验室中…

K折交叉验证——cross_val_score函数使用说明

在机器学习中&#xff0c;许多算法中多个超参数&#xff0c;超参数的取值不同会导致结果差异很大&#xff0c;如何确定最优的超参数&#xff1f;此时就需要进行交叉验证的方法&#xff0c;sklearn给我们提供了相应的cross_val_score函数&#xff0c;可对数据集进行交叉验证划分…

小程序是一种伪需求技术吗?

点击下方“JavaEdge”&#xff0c;选择“设为星标” 第一时间关注技术干货&#xff01; 免责声明~ 任何文章不要过度深思&#xff01; 万事万物都经不起审视&#xff0c;因为世上没有同样的成长环境&#xff0c;也没有同样的认知水平&#xff0c;更「没有适用于所有人的解决方案…

[NOIP2012 提高组] 开车旅行

[NOIP2012 提高组] 开车旅行 题目描述 小 A \text{A} A 和小 B \text{B} B 决定利用假期外出旅行&#xff0c;他们将想去的城市从 $1 $ 到 n n n 编号&#xff0c;且编号较小的城市在编号较大的城市的西边&#xff0c;已知各个城市的海拔高度互不相同&#xff0c;记城市 …

零基础一站式精通安卓逆向2023最新版(第一天):Android Studio的安装与配置

目录 一、Android Studio 开发环境的下载二、Android Studio 的安装与配置2.1 安装2.2 Android SDK 的管理 三、创建 Android 应用程序补充&#xff1a;安装完 Android Studio 后 SDK 目录下没有 tools 目录 一、Android Studio 开发环境的下载 通常情况下&#xff0c;为了提高…

对pyside6中的textedit进行自定义,实现按回车可以触发事件。

我的实现方法是&#xff0c;先用qt designer写好界面&#xff0c;如下图&#xff1a; 接着将其生成的ui文件编译成为py文件。 找到里面这几行代码&#xff1a; self.textEdit QTextEdit(self.centralwidget)self.textEdit.setObjectName(u"textEdit")self.textEdit…

Vue城市选择器示例(省市区三级)

Vue城市选择器&#xff08;省市区&#xff09; 读者可以参考下面的省市区三级联动代码思路&#xff0c;切记要仔细研究透彻&#xff0c;学习交流才是我们的本意&#xff0c;而非一成不变。切记切记&#xff01; 最近又重读苏子的词&#xff0c;颇为感慨&#xff0c;愿与诸君共…

2022年中国征信行业覆盖人群、参与者数量及征信业务查询量统计[图]

征信是指依法收集、整理、保存、加工自然人、法人及其他组织的信用信息&#xff0c;并对外提供信用报告、信用评估、信用信息咨询等服务&#xff0c;帮助客户判断、控制信用风险&#xff0c;进行信用管理的活动。 征信业主要范畴 资料来源&#xff1a;共研产业咨询&#xff08…

B. Comparison String

题目&#xff1a; 样例&#xff1a; 输入 4 4 <<>> 4 >><< 5 >>>>> 7 <><><><输出 3 3 6 2 思路&#xff1a; 由题意&#xff0c;条件是 又因为要使用尽可能少的数字&#xff0c;这是一道贪心题&#xff0c;所以…

初识多线程

一、多任务 现实中太多这样同时做多件事的例子了&#xff0c;例如一边吃饭一遍刷视频&#xff0c;看起来是多个任务都在做&#xff0c;其实本质上我们的大脑在同一时间依旧只做了一件事情。 二、普通方法调用和多线程 普通方法调用只有主线程一条执行路径 多线程多条执行路径…

uni-app_消息推送_华为厂商_unipush离线消息推送

文章目录 一、创建项目二、生成签名证书三、开通 unipush 推送服务四、客户端集成四、制作自定义调试基座五、开发者中心后台Web页面推送&#xff08;仅支持在线推送&#xff09;六、离线消息推送1、创建华为开发者账号2、开通推送服务3、创建项目4、添加应用5、添加SHA256证书…

【Linux】详解线程第三篇——线程同步和生产消费者模型

线程同步和生消模型 前言正式开始再次用黄牛抢票来讲解线程同步的思想通过条件变量来实现线程同步条件变量接口介绍初始化和销毁pthread_cond_waitsignal和broadcast 生产消费者模型三种关系用基本工程师思维再次理解基于生产消费者模型的阻塞队列版本一版本二多生多消 利用RAI…

2022年全球一次能源消费量:石油消耗量持续增加达190.69百亿亿焦耳,亚太地区消费量居首位[图]

一次性能源是指从自然界取得未经改变或转变而直接利用的能源。如原煤、原油、天然气、水能、风能、太阳能、海洋能、潮汐能、地热能、天然铀矿等。一次性能源又分为可再生能源和不可再生能源&#xff0c;前者指能够重复产生的天然能源&#xff0c;包括太阳能、风能、潮汐能、地…

响应式设计的实现方式

一. 什么是响应式 响应式网站设计是一种网络页面设计布局。页面的设计与开发应当根据用户行为以及设备环境&#xff08;系统平台&#xff0c;屏幕尺寸&#xff0c;屏幕定向等&#xff09;进行相应的响应和调整。 响应式网站常见特点&#xff1a; 1. 同时适配PC平板手机。 2…

排序篇(五)----非比较排序

排序篇(五)----非比较排序 基本思想&#xff1a; ​ 计数排序又称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应用。 ​ 统计每个元素出现的次数&#xff0c;然后根据元素的大小顺序将它们放入正确的位置。 ​ 计数排序是一种小众的排序,它适合于数据密集的场景,按最大…

flink选择slot

flink选择slot 在这个类里修改 package org.apache.flink.runtime.resourcemanager.slotmanager.SlotManagerImpl; findMatchingSlot(resourceProfile)&#xff1a;找到满足要求的slot&#xff08;负责从哪个taskmanager中获取slot&#xff09;对应上图第8&#xff0c;9&…

百元开放式耳机推荐哪款、性价比最好的开放式耳机推荐

随着蓝牙耳机产业的高速发展&#xff0c;目前最热门的蓝牙耳机莫过于开放式的&#xff0c;跟传统的蓝牙耳机相比&#xff0c;开放式的耳机拥有久戴不累、安全舒适等优势&#xff0c;所谓的“开放式耳机”&#xff0c;就是指不用塞入耳朵内&#xff0c;也能听音乐的耳机&#xf…

noip2011铺地毯

[NOIP2011 提高组] 铺地毯 题目描述 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺上一些矩形地毯。一共有 n n n 张地毯&#xff0c;编号从 1 1 1 到 n n n。现在将这些地毯按照编号从小…

Codeforces Round 894 (Div. 3) D(数学题好难不会)

题目链接&#xff1a;Codeforces Round 894 (Div. 3) D 题目&#xff1a; 特马决定提高自己制作冰淇淋的技能。他已经学会了如何用两个球把冰淇淋做成圆锥形。 在痴迷冰淇淋之前&#xff0c;特马对数学很感兴趣。因此&#xff0c;他很想知道要制作完全n个不同类型的冰淇淋&am…

数学建模之Matlab基础操作

作者由于后续课程也要学习Matlab&#xff0c;并且之前也进行了一些数学建模的练习&#xff08;虽然是论文手&#xff09;&#xff0c;所以花了几天零碎时间学习Matlab的基础操作&#xff0c;特此整理。 基本运算 a55 %加法&#xff0c;同理减法 b2^3 %立方 c5*2 %乘法 x 1; …