LANG-781: Added methods to ObjectUtils class to check for null elements in the array (closes #108)
This commit is contained in:
parent
2433cd393e
commit
d190655a97
|
@ -128,6 +128,45 @@ public static <T> T firstNonNull(final T... values) {
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p></p>Checks if any value in the array is not {@code null}.
|
||||
* If all the values are {@code null} or the array is {@code null}
|
||||
* or empty then {@code false} is returned. Otherwise {@code true} is returned.</p>
|
||||
*
|
||||
* @param values the values to test, may be {@code null} or empty
|
||||
* @return {@code true} if there is at least one non-null value in the array,
|
||||
* {@code false} if all values in the array are {@code null}s.
|
||||
* If the array is {@code null} or empty {@code false} is also returned.
|
||||
*/
|
||||
public static boolean anyNotNull(final Object... values) {
|
||||
return firstNonNull(values) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p></p>Checks if all values in the array are not {@code null}s.
|
||||
* If any value is {@code null} or the array is {@code null}
|
||||
* then {@code false} is returned.
|
||||
* If all elements in array are not {@code null} or the array is empty (contains no elements)
|
||||
* {@code true} is returned.</p>
|
||||
*
|
||||
* @param values the values to test, may be {@code null} or empty
|
||||
* @return {@code false} if there is at least one {@code null} value in the array or the array is {@code null},
|
||||
* {@code true} if all values in the array are not {@code null}s or array contains no elements.
|
||||
*/
|
||||
public static boolean allNotNull(final Object... values) {
|
||||
if (values == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (final Object val : values) {
|
||||
if (val == null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Null-safe equals/hashCode
|
||||
//-----------------------------------------------------------------------
|
||||
/**
|
||||
|
|
|
@ -89,6 +89,38 @@ public void testFirstNonNull() {
|
|||
assertNull(ObjectUtils.firstNonNull((Object[]) null));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests {@link ObjectUtils#anyNotNull(Object...)}.
|
||||
*/
|
||||
@Test
|
||||
public void testAnyNotNull() {
|
||||
assertFalse(ObjectUtils.anyNotNull());
|
||||
assertFalse(ObjectUtils.anyNotNull((Object) null));
|
||||
assertFalse(ObjectUtils.anyNotNull((Object[]) null));
|
||||
assertFalse(ObjectUtils.anyNotNull(null, null, null));
|
||||
|
||||
assertTrue(ObjectUtils.anyNotNull(FOO));
|
||||
assertTrue(ObjectUtils.anyNotNull(null, FOO, null));
|
||||
assertTrue(ObjectUtils.anyNotNull(null, null, null, null, FOO, BAR));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests {@link ObjectUtils#allNotNull(Object...)}.
|
||||
*/
|
||||
@Test
|
||||
public void testAllNotNull() {
|
||||
assertFalse(ObjectUtils.allNotNull((Object) null));
|
||||
assertFalse(ObjectUtils.allNotNull((Object[]) null));
|
||||
assertFalse(ObjectUtils.allNotNull(null, null, null));
|
||||
assertFalse(ObjectUtils.allNotNull(null, FOO, BAR));
|
||||
assertFalse(ObjectUtils.allNotNull(FOO, BAR, null));
|
||||
assertFalse(ObjectUtils.allNotNull(FOO, BAR, null, FOO, BAR));
|
||||
|
||||
assertTrue(ObjectUtils.allNotNull());
|
||||
assertTrue(ObjectUtils.allNotNull(FOO));
|
||||
assertTrue(ObjectUtils.allNotNull(FOO, BAR, 1, Boolean.TRUE, new Object(), new Object[]{}));
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
@Test
|
||||
public void testEquals() {
|
||||
|
|
Loading…
Reference in New Issue