null值安全的相等判断
来源:互联网 发布:来肯云商软件怎么样 编辑:程序博客网 时间:2024/06/06 07:40
package com.javacodegeeks.snippets.core;import java.util.Arrays;abstract class ObjectUtils {private static final int INITIAL_HASH = 7;private static final int MULTIPLIER = 31;private static final String EMPTY_STRING = "";private static final String NULL_STRING = "null";private static final String ARRAY_START = "{";private static final String ARRAY_END = "}";private static final String EMPTY_ARRAY = ARRAY_START + ARRAY_END;private static final String ARRAY_ELEMENT_SEPARATOR = ", ";/** * Determine if the given objects are equal, returning true if both are null * or false if only one is null. Compares arrays with Arrays.equals, * performing an equality check based on the array elements rather than the * array reference. */public static boolean nullSafeEquals(Object o1, Object o2) {if (o1 == o2) {return true;}if (o1 == null || o2 == null) {return false;}if (o1.equals(o2)) {return true;}if (o1 instanceof Object[] && o2 instanceof Object[]) {return Arrays.equals((Object[]) o1, (Object[]) o2);}if (o1 instanceof boolean[] && o2 instanceof boolean[]) {return Arrays.equals((boolean[]) o1, (boolean[]) o2);}if (o1 instanceof byte[] && o2 instanceof byte[]) {return Arrays.equals((byte[]) o1, (byte[]) o2);}if (o1 instanceof char[] && o2 instanceof char[]) {return Arrays.equals((char[]) o1, (char[]) o2);}if (o1 instanceof double[] && o2 instanceof double[]) {return Arrays.equals((double[]) o1, (double[]) o2);}if (o1 instanceof float[] && o2 instanceof float[]) {return Arrays.equals((float[]) o1, (float[]) o2);}if (o1 instanceof int[] && o2 instanceof int[]) {return Arrays.equals((int[]) o1, (int[]) o2);}if (o1 instanceof long[] && o2 instanceof long[]) {return Arrays.equals((long[]) o1, (long[]) o2);}if (o1 instanceof short[] && o2 instanceof short[]) {return Arrays.equals((short[]) o1, (short[]) o2);}return false;}}class A {public int x;public String str;public A(int x, String str) {this.x = x;this.str = str;}@Overridepublic boolean equals(Object o) {if (o == null) {return false;} else if (o instanceof A) {A obj = (A) o;if (this.x == obj.x && this.str.equals(obj.str)) {return true;}}return false;}}public class NullSafeEquals extends ObjectUtils {public static void main(String[] args) {A a1 = new A(10, "Nikos");A a2 = new A(10, "Dimitrhs");System.out.println(nullSafeEquals(a1, a2));// System.out.println(nullSafeEquals(2,2));// System.out.println(nullSafeEquals(1,"string"));// System.out.println(nullSafeEquals(true,true));}}
运行结果:false
原文:http://examples.javacodegeeks.com/core-java/class/null-safe-equals-method/
0 0
- null值安全的相等判断
- js 中的null和undefined相等的条件判断
- 判断两个对象的值是否相等
- 判断相等的宏
- 实数相等的判断
- 判断是否相等用is而不是"="以及null的使用注意事项
- 使用三目运算符,判断两个对象是否相等(包括null的情况)
- Js 判断相等,undefined,null,NaN,Bool以及类型判断
- mybatis判断相等的问题
- 判断Map的value值是否相等,相等则将key值组成字符串
- double类型值相等判断
- 两个相等的值 经过if 判断后不等于了
- 重写equals方法判断类的值是否相等
- 判断两个UIColor的颜色值是否相等
- 判断两个UIColor的颜色值是否相等
- es6 javascript 的Object.is(),判断两个值相等
- JavaScript 这类弱类型的语言,在判断相等方面很麻烦,明明不是一个东西,却相等了。这里通过示例展示 null、 undefined、 0、 false、 "" 的相等情况。 var arr
- 相等判断
- ExtJS中Ext.Ajax.request与form.getForm().submit()返回值获取
- 重载自增,自减运算符
- 最小生成树详解
- Discuz X3.1 论坛仿化龙巷风格
- win7 +adsl + vmware+ ubuntu +bridge 上网
- null值安全的相等判断
- 胖虎白话学习设计模式之多线程与单例模式设计模式(Singleton)
- nyoj38布线问题
- 软件测试人员的脑子里到底在想什么?
- cocos2d-x颜色设置
- IOS Socket 总结 (涉及内容Amr,protobuf,CFSocket)
- CSS 简洁表单布局
- 2012年下半年的无线电合订本光盘资料
- Java中的Set, List, Map漫谈