You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mb...@apache.org on 2013/10/11 21:36:39 UTC
svn commit: r1531399 - in /commons/proper/lang/trunk/src:
main/java/org/apache/commons/lang3/ArrayUtils.java
test/java/org/apache/commons/lang3/ArrayUtilsTest.java
Author: mbenson
Date: Fri Oct 11 19:36:39 2013
New Revision: 1531399
URL: http://svn.apache.org/r1531399
Log:
[LANG-920] Add ArrayUtils#nullToEmpty(Class<?>[])
Modified:
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ArrayUtils.java
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
Modified: commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ArrayUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ArrayUtils.java?rev=1531399&r1=1531398&r2=1531399&view=diff
==============================================================================
--- commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ArrayUtils.java (original)
+++ commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/ArrayUtils.java Fri Oct 11 19:36:39 2013
@@ -484,6 +484,26 @@ public class ArrayUtils {
*
* @param array the array to check for {@code null} or empty
* @return the same array, {@code public static} empty array if {@code null} or empty input
+ * @since 3.2
+ */
+ public static Class<?>[] nullToEmpty(final Class<?>[] array) {
+ if (array == null || array.length == 0) {
+ return EMPTY_CLASS_ARRAY;
+ }
+ return array;
+ }
+
+ /**
+ * <p>Defensive programming technique to change a {@code null}
+ * reference to an empty one.</p>
+ *
+ * <p>This method returns an empty array for a {@code null} input array.</p>
+ *
+ * <p>As a memory optimizing technique an empty array passed in will be overridden with
+ * the empty {@code public static} references in this class.</p>
+ *
+ * @param array the array to check for {@code null} or empty
+ * @return the same array, {@code public static} empty array if {@code null} or empty input
* @since 2.5
*/
public static String[] nullToEmpty(final String[] array) {
Modified: commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java?rev=1531399&r1=1531398&r2=1531399&view=diff
==============================================================================
--- commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java (original)
+++ commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java Fri Oct 11 19:36:39 2013
@@ -489,6 +489,20 @@ public class ArrayUtilsTest {
}
@Test
+ public void testNullToEmptyClass() {
+ // Test null handling
+ assertArrayEquals(ArrayUtils.EMPTY_CLASS_ARRAY, ArrayUtils.nullToEmpty((Class<?>[]) null));
+ // Test valid array handling
+ final Class<?>[] original = { Object.class, String.class };
+ assertArrayEquals(original, ArrayUtils.nullToEmpty(original));
+ // Test empty array handling
+ final Class<?>[] empty = {};
+ final Class<?>[] result = ArrayUtils.nullToEmpty(empty);
+ assertArrayEquals(ArrayUtils.EMPTY_CLASS_ARRAY, result);
+ assertTrue(empty != result);
+ }
+
+ @Test
public void testNullToEmptyString() {
// Test null handling
assertArrayEquals(ArrayUtils.EMPTY_STRING_ARRAY, ArrayUtils.nullToEmpty((String[]) null));