写点什么

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:012659
用户头像

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

关注

评论

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

区块链是否正在慢慢演变为中心化的数据库?我们又该如何预防数据中心化?

CECBC

Prometheus 内置函数(一)

耳东@Erdong

Prometheus 10月月更

看了CopyOnWriteArrayList后自己实现了一个CopyOnWriteHashMap

root

Java 程序员 CopyOnWrite;

Go 中如何使用结构体标签

baiyutang

golang 10月月更

Zookeeper 客户端错误:Packet len8854970 is out of range!

看山

zookeeper 10月月更

DeFi智能合约DAPP系统开发公司(现成)

全球6G专利独占4成,中国能否借此“制霸”元宇宙?

海比研究院

架构实战营-模块一

瓜子葫芦侠

「架构实战营」

2021年Android春招面试经历,阿里秋招面试真题解析

android 程序员 移动开发

Java8 Lambda表达式与Stream

风翱

Lambda 10月月更

REST API 设计:过滤、排序和分页

devpoint

REST API 10月月更

2021年Android程序员职业规划,Android开发技巧

android 程序员 移动开发

2021年Android高级面试题,成功入职字节跳动

android 程序员 移动开发

2021年GitHub上那些优秀Android开源库总结,花2万块买的教程

android 程序员 移动开发

阿里云边缘云ENS再升级 产业数字化落地向何方?

阿里云Edge Plus

Vue进阶(幺肆肆):(window,parent,opener,top).location.reload方法分析

No Silver Bullet

Vue 页面刷新 10月月更

Python代码阅读(第43篇):构造组合函数

Felix

Python 编程 Code Programing 阅读代码

2021年Android大厂面试分享,实战篇

android 程序员 移动开发

央行数字货币已落地,来的太快,机遇在哪?

CECBC

在线字符串长度计算,字符串统计工具

入门小站

工具

你真的会 Prometheus 查询吗?--PromQL 合集

耳东@Erdong

Prometheus PromQL 10月月更

谈 C++17 里的 Chain of Responsibility 模式

hedzr

设计模式 Design Patterns 职责链模式 c++17 消息分发

在 pygame 中好好玩玩精灵,滚雪球学 Python 游戏番

梦想橡皮擦

10月月更

Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理

API7.ai 技术团队

云原生 PaaS API网关 Apache APISIX

Defi挖矿系统开发简介(现成案例)

2020-2021蚂蚁金服Android面试真题解析,使用指南

android 程序员 移动开发

linux之xargs使用技巧

入门小站

Linux

Vue进阶(幺肆伍):Vue-elementUI实现操作栏位更多效果

No Silver Bullet

Vue 10月月更

第 22 章 -《Linux 一学就会》- 跳出循环-shift参数左移-函数的使用

学神来啦

Linux linux运维 linux云计算 linux一学就会

解密诡异并发问题的幕后黑手:可见性问题

华为云开发者联盟

并发编程 线程 并发 可见性 单核CPU

Groovy动态添加方法和属性及Spock单测

FunTester

Java 动态 spock Groovy FunTester

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