add testr

This commit is contained in:
Looly 2022-05-31 21:53:07 +08:00
parent a60f20f241
commit 191261b42d
2 changed files with 36 additions and 9 deletions

View File

@ -67,6 +67,7 @@ public class ObjUtil {
* <li>CharSequence</li> * <li>CharSequence</li>
* <li>Map</li> * <li>Map</li>
* <li>Iterator</li> * <li>Iterator</li>
* <li>Iterable</li>
* <li>Enumeration</li> * <li>Enumeration</li>
* <li>Array</li> * <li>Array</li>
* </ul> * </ul>
@ -89,8 +90,8 @@ public class ObjUtil {
} }
int count; int count;
if (obj instanceof Iterator) { if (obj instanceof Iterator || obj instanceof Iterable) {
final Iterator<?> iter = (Iterator<?>) obj; final Iterator<?> iter = (obj instanceof Iterator) ? (Iterator<?>) obj : ((Iterable<?>) obj).iterator();
count = 0; count = 0;
while (iter.hasNext()) { while (iter.hasNext()) {
count++; count++;
@ -107,7 +108,7 @@ public class ObjUtil {
} }
return count; return count;
} }
if (obj.getClass().isArray() == true) { if (obj.getClass().isArray()) {
return Array.getLength(obj); return Array.getLength(obj);
} }
return -1; return -1;
@ -121,6 +122,7 @@ public class ObjUtil {
* <li>Collection</li> * <li>Collection</li>
* <li>Map</li> * <li>Map</li>
* <li>Iterator</li> * <li>Iterator</li>
* <li>Iterable</li>
* <li>Enumeration</li> * <li>Enumeration</li>
* <li>Array</li> * <li>Array</li>
* </ul> * </ul>
@ -146,8 +148,8 @@ public class ObjUtil {
return ((Map<?, ?>) obj).containsValue(element); return ((Map<?, ?>) obj).containsValue(element);
} }
if (obj instanceof Iterator) { if (obj instanceof Iterator || obj instanceof Iterable) {
final Iterator<?> iter = (Iterator<?>) obj; final Iterator<?> iter = obj instanceof Iterator ? (Iterator<?>) obj : ((Iterable<?>) obj).iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
final Object o = iter.next(); final Object o = iter.next();
if (equals(o, element)) { if (equals(o, element)) {

View File

@ -7,18 +7,40 @@ import cn.hutool.core.date.DateUtil;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import java.math.BigDecimal;
import java.time.Instant; import java.time.Instant;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class ObjectUtilTest { public class ObjUtilTest {
@Test @Test
public void equalsTest(){ public void equalsTest() {
final Object a = null; Object a = null;
final Object b = null; Object b = null;
Assert.assertTrue(ObjUtil.equals(a, b)); Assert.assertTrue(ObjUtil.equals(a, b));
a = new BigDecimal("1.1");
b = new BigDecimal("1.10");
Assert.assertTrue(ObjUtil.equals(a, b));
a = 127;
b = 127;
Assert.assertTrue(ObjUtil.equals(a, b));
a = 128;
b = 128;
Assert.assertTrue(ObjUtil.equals(a, b));
a = LocalDateTime.of(2022, 5, 29, 22, 11);
b = LocalDateTime.of(2022, 5, 29, 22, 11);
Assert.assertTrue(ObjUtil.equals(a, b));
a = 1;
b = 1.0;
Assert.assertFalse(ObjUtil.equals(a, b));
} }
@Test @Test
@ -33,6 +55,9 @@ public class ObjectUtilTest {
map.put("c", "c1"); map.put("c", "c1");
length = ObjUtil.length(map); length = ObjUtil.length(map);
Assert.assertEquals(3, length); Assert.assertEquals(3, length);
final Iterable<Integer> list = ListUtil.of(1, 2, 3);
Assert.assertEquals(3, ObjUtil.length(list));
} }
@Test @Test