写点什么

JDK 7:java.util.Objects 中应该包含哪些常用方法呢?

  • 2009-09-14
  • 本文字数:580 字

    阅读完需:约 2 分钟

为了对即将到来的 JDK 7 新类 java.util.Objects 做准备,来自 Sun 的 Joe Darcy 向 OpenJDK core-libs-dev 团队咨询该类中应该包含哪些方法。借此机会,InfoQ 向广大的 Java 社区征求意见。

在最初的提案中,Darcy 谈到了该类中需要包含的几个方法:

  • 一个空安全(null-safe)的 equals(arg1, arg2) 方法,如果两个参数都为 null 返回 true,如果只有一个为 null 返回 false,其他情况则调用 arg1.equals(arg2)
  • 一套针对所有原生类型(int、long 等)的 compareTo(arg1, arg2) 方法

Andrew John Hughes 也给出了自己的一些看法

  • toString(arg),通过反射将对象中的所有属性都写到返回的输出字符串中
  • 对 clone() 方法的一个辅助实现

Martin Buchholz 还提出一个空安全的 hashCode() 实现,对于值为 null 的对象该方法返回 0。

Stephen Colebourne 专门为该类创建了一个长长的推荐方法列表,这些方法大多都是从 Apache Commons Lang 程序库中摘取出来的。比如:

  • min(comparable1, comparable2) 与 max(comparable1, comparable2),这两个方法都是空安全的方法,返回最小 / 最大的非空对象(如果两个参数都为 null 则返回 null)
  • defaultNull(obj, defaultValue),如果 obj 为 null 则返回 defaultValue 对象

您有什么高见呢?java.util.Objects 中应该包含哪些方法呢?

查看英文原文: JDK 7: What Frequently Rewritten Methods Should be Included in java.util.Objects?

2009-09-14 23:012588
用户头像

发布了 88 篇内容, 共 268.9 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

JavsScript基础篇之函数定义的几种不同方式

你好bk

JavaScript 大前端 数组 html/css

互联网+质量基础设施服务平台,NQI一站式线上平台开发

电微13828808271

您有一份阿里云云原生直播攻略待查收

阿里巴巴云原生

阿里云 Kubernetes 云原生 线下活动

使用 Resilience4j 框架实现重试机制

码语者

Java 重试机制 Reslience4j

90后女博士谈反内卷,称科研不应攀比论文数,“唯论文论”何时休?

百度开发者中心

开发者 内卷化

三顾茅庐,七面阿里,25k*16offer,还原我的大厂面经

热爱java的分享家

Java 程序人生 编程语言 经验分享 大厂面试

[Pulsar] 一个消息的生命历程(二)——Batch和消息重复处理

Zike Yang

Apache Pulsar 11月日更

黄峥、张一鸣、李斌都曾上榜!100个未来独角兽:超越估值看见星辰大海

创业邦

在Vue项目里使用ECharts图标库

石云升

Vue 学习笔记 11月日更 Echar

首个沉浸式云原生 Serverless 技术实践营开启报名

阿里巴巴云原生

阿里云 Serverless 云原生 KubeMeet 线下活动

涨薪50%,从小厂逆袭,坐上美团L8技术专家(面经+心得)

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

能耗能源管控平台开发,能源管理云平台搭建

电微13828808271

干掉 XML Mapper,新出的 Fluent Mybatis 真香

AI乔治

Java sql 架构 mybatis

啥是ElasticSearch全流程,看这篇我也懂了

热爱java的分享家

Java 程序人生 编程语言 经验分享 ES

如何使用FL Studio效果器制作镶边音效

懒得勤快

圆梦腾讯之路!6面阿里、5面字节、4面腾讯,终斩腾讯Offer

热爱java的分享家

Java 架构 面试 编程语言 经验分享

.Net6 miniAPI JWT鉴权授权的多种实现

面向对象的猫

netcore NET6

智能时代的轴承与齿轮:工业互联网如何真正“工业化”?

脑极体

官方:陆续清退比特币“矿场”

CECBC

区块链如何赋能农村金融服务?

CECBC

Python Qt GUI设计:QLineEdit和QTextEdit文本框类(基础篇—13)

不脱发的程序猿

PyQt GUI设计 Python Qt QLineEdit QTextEdit

赋能“数字金融”,CODING 再下数城

CODING DevOps

研发管理 数字化转型 CI/CD 代码管理 可视化软件

使用命令模式重构播放器控制条

Tom弹架构

Java 架构 设计模式

模块四课后作业 - 设计千万级学生管理系统的考试试卷存储方案

渐行渐远

架构实战营

NodeJs深入浅出之旅:理解Buffer 🐰

空城机

大前端 Node 11月日更

用AI走出“沙丘”

脑极体

22 K8S之ConfigMap配置

穿过生命散发芬芳

k8s 11月日更

盲盒开发

函数计算 GB 镜像秒级启动:下一代软硬件架构协同优化揭秘

阿里巴巴云原生

阿里云 云原生 函数计算

声网Agora 实时音视频服务正式上线 HTC VIVE Sync App,支持非 VR 用户

声网

人工智能 音视频 vr

12.04 深圳站 | Serverless Developer Meetup 开放报名啦!

阿里巴巴云原生

阿里云 Serverless 云原生 深圳 线下活动

JDK 7:java.util.Objects中应该包含哪些常用方法呢?_Java_Ryan Slobojan_InfoQ精选文章