.NET object.Equals(object, object) 的 Java 等效项
在 .NET 中,System.Object
定义了一个静态方法
bool Equals(object a, object b);
,在 a
可能为<的情况下,这是 a.Equals(b)
的有用替代方法。代码>空。如果 a
和 b
均为 null
,它也会返回 true。
我在Java的框架中找不到等效的方法(这些天我的Java有点生疏了。)我能想到的最简洁的代码是:
(a==null && b==null) || (a!=null && a.Equals(b))
这样的方法存在吗?
注意我不想依赖任何外部框架。我只是好奇这个简单的方法是否存在于核心 Java 类库中。
In .NET System.Object
defines a static method
bool Equals(object a, object b);
That is a useful alternative to a.Equals(b)
in cases where a
may be null
. It also returns true if both a
and b
are null
.
I can't find an equivalent method in Java's framework (my Java is a bit rusty these days.) The most succinct code I can muster is:
(a==null && b==null) || (a!=null && a.Equals(b))
Does such a method exist?
NOTE I don't want to take a dependency on any external framework. I'm just curious if this simple method exists in the core Java class library.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为你想要的是ObjectUtils.equals。
如果您有兴趣,这里是来自图书馆的代码......
I think what you want is ObjectUtils.equals.
If you are interested, here is the code from the library...
目前,核心库中不存在此功能,但它是 Java 1.7 中添加的改进之一。
在 Java 1.7 中,您可以使用
Objects.equals(Object a, Object b)
。在那之前,如果您不想添加外部依赖项,我建议您自己实现它。来源
Currently, this does not exist in the core library, but it is one of the improvements that is being added with Java 1.7.
In Java 1.7, you can use
Objects.equals(Object a, Object b)
. Until then, I recommend implementing it yourself if you do not want to add an external dependency.source
ObjectUtils 在 Apache Commons 提供了这样一个 方法。
ObjectUtils in Apache Commons provides such a method.