使用java代码写一个工具类实现比较基本类型和对象是否相等,要考虑null比较的情况
时间: 2024-04-08 07:33:13 浏览: 110
当比较基本类型和对象是否相等时可以创建一个工具封装这个逻辑。以下是一个示例的工具类实现:
```java
public class EqualityUtil {
public static boolean areEqual(Object obj1, Object obj2) {
ifobj1 == null && obj2 == null) return true;
}
if (obj == null || obj2 == null) {
false;
}
if (obj1.getClass().isArray() && obj2.getClass().isArray()) {
return Arrays.deepEquals(new Object[]{obj1}, new Object[]{obj2});
}
return obj1.equals(obj2);
}
}
```
这个工具类包含了一个静态方法`areEqual()`,用于比较两个对象是否相等。它考虑了以下几种情况:
1. 如果两个对象都为null,则认为它们相等。
2. 如果其中一个对象为null,另一个不为null,则认为它们不相等。
3. 如果两个对象都是数组类型,则使用`Arrays.deepEquals()`方法进行深度比较。
4. 对于其他情况,使用对象的`equals()`方法进行比较。
使用示例:
```java
public class Main {
public static void main(String[] args) {
Integer num1 = 5;
Integer num2 = 5;
System.out.println(EqualityUtil.areEqual(num1, num2)); // 输出: true
String str1 = "Hello";
String str2 = "Hello";
System.out.println(EqualityUtil.areEqual(str1, str2)); // 输出: true
String str3 = "Hello";
String str4 = "World";
System.out.println(EqualityUtil.areEqual(str3, str4)); // 输出: false
Object obj1 = null;
Object obj2 = null;
System.out.println(EqualityUtil.areEqual(obj1, obj2)); // 输出: true
Object obj3 = null;
Object obj4 = "Hello";
System.out.println(EqualityUtil.areEqual(obj3, obj4)); // 输出: false
}
}
```
希望这个工具类能够满足您的需求!如果您还有其他问题,请随时提问。
阅读全文