📄 isequal.java
字号:
/* Copyright (c) 2000-2006 hamcrest.org */package org.hamcrest.core;import org.hamcrest.Description;import org.hamcrest.Matcher;import org.hamcrest.Factory;import org.hamcrest.BaseMatcher;import java.lang.reflect.Array;/** * Is the value equal to another value, as tested by the * {@link java.lang.Object#equals} invokedMethod? */public class IsEqual<T> extends BaseMatcher<T> { private final Object object; public IsEqual(T equalArg) { object = equalArg; } public boolean matches(Object arg) { return areEqual(object, arg); } public void describeTo(Description description) { description.appendValue(object); } private static boolean areEqual(Object o1, Object o2) { if (o1 == null || o2 == null) { return o1 == null && o2 == null; } else if (isArray(o1)) { return isArray(o2) && areArraysEqual(o1, o2); } else { return o1.equals(o2); } } private static boolean areArraysEqual(Object o1, Object o2) { return areArrayLengthsEqual(o1, o2) && areArrayElementsEqual(o1, o2); } private static boolean areArrayLengthsEqual(Object o1, Object o2) { return Array.getLength(o1) == Array.getLength(o2); } private static boolean areArrayElementsEqual(Object o1, Object o2) { for (int i = 0; i < Array.getLength(o1); i++) { if (!areEqual(Array.get(o1, i), Array.get(o2, i))) return false; } return true; } private static boolean isArray(Object o) { return o.getClass().isArray(); } /** * Is the value equal to another value, as tested by the * {@link java.lang.Object#equals} invokedMethod? */ @Factory public static <T> Matcher<T> equalTo(T operand) { return new IsEqual<T>(operand); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -