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 2009/09/23 21:16:19 UTC

svn commit: r818214 - /commons/proper/lang/trunk/src/java/org/apache/commons/lang/ArrayUtils.java

Author: mbenson
Date: Wed Sep 23 19:16:19 2009
New Revision: 818214

URL: http://svn.apache.org/viewvc?rev=818214&view=rev
Log:
generics for addAll(Object[], Object[]) + varargs for all addAll addends

Modified:
    commons/proper/lang/trunk/src/java/org/apache/commons/lang/ArrayUtils.java

Modified: commons/proper/lang/trunk/src/java/org/apache/commons/lang/ArrayUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/apache/commons/lang/ArrayUtils.java?rev=818214&r1=818213&r2=818214&view=diff
==============================================================================
--- commons/proper/lang/trunk/src/java/org/apache/commons/lang/ArrayUtils.java (original)
+++ commons/proper/lang/trunk/src/java/org/apache/commons/lang/ArrayUtils.java Wed Sep 23 19:16:19 2009
@@ -241,7 +241,7 @@
         final Map<Object, Object> map = new HashMap<Object, Object>((int) (array.length * 1.5));
         for (int i = 0; i < array.length; i++) {
             Object object = array[i];
-            if (object instanceof Map.Entry) {
+            if (object instanceof Map.Entry<?, ?>) {
                 Map.Entry<?,?> entry = (Map.Entry<?,?>) object;
                 map.put(entry.getKey(), entry.getValue());
             } else if (object instanceof Object[]) {
@@ -2962,17 +2962,14 @@
      *      The type of the new array is the type of the first array.
      * @since 2.1
      */
-    public static Object[] addAll(Object[] array1, Object[] array2) {
-        /* this method could be generic as <T, U extends T> T[] addAll(T[], U[]), but if array1 == null,
-         * clone array2, then caller tries to add T objects to the U clone, could be a problem.
-         * Could add another version of the method where the first array cannot be null... :/
-         */
+    @SuppressWarnings("unchecked")
+    public static <T> T[] addAll(T[] array1, T... array2) {
         if (array1 == null) {
             return clone(array2);
         } else if (array2 == null) {
             return clone(array1);
         }
-        Object[] joinedArray = (Object[]) Array.newInstance(array1.getClass().getComponentType(),
+        T[] joinedArray = (T[]) Array.newInstance(array1.getClass().getComponentType(),
                                                             array1.length + array2.length);
         System.arraycopy(array1, 0, joinedArray, 0, array1.length);
         System.arraycopy(array2, 0, joinedArray, array1.length, array2.length);
@@ -2996,7 +2993,7 @@
      * @return The new boolean[] array.
      * @since 2.1
      */
-    public static boolean[] addAll(boolean[] array1, boolean[] array2) {
+    public static boolean[] addAll(boolean[] array1, boolean... array2) {
         if (array1 == null) {
             return clone(array2);
         } else if (array2 == null) {
@@ -3025,7 +3022,7 @@
      * @return The new char[] array.
      * @since 2.1
      */
-    public static char[] addAll(char[] array1, char[] array2) {
+    public static char[] addAll(char[] array1, char... array2) {
         if (array1 == null) {
             return clone(array2);
         } else if (array2 == null) {
@@ -3054,7 +3051,7 @@
      * @return The new byte[] array.
      * @since 2.1
      */
-    public static byte[] addAll(byte[] array1, byte[] array2) {
+    public static byte[] addAll(byte[] array1, byte... array2) {
         if (array1 == null) {
             return clone(array2);
         } else if (array2 == null) {
@@ -3083,7 +3080,7 @@
      * @return The new short[] array.
      * @since 2.1
      */
-    public static short[] addAll(short[] array1, short[] array2) {
+    public static short[] addAll(short[] array1, short... array2) {
         if (array1 == null) {
             return clone(array2);
         } else if (array2 == null) {
@@ -3112,7 +3109,7 @@
      * @return The new int[] array.
      * @since 2.1
      */
-    public static int[] addAll(int[] array1, int[] array2) {
+    public static int[] addAll(int[] array1, int... array2) {
         if (array1 == null) {
             return clone(array2);
         } else if (array2 == null) {
@@ -3141,7 +3138,7 @@
      * @return The new long[] array.
      * @since 2.1
      */
-    public static long[] addAll(long[] array1, long[] array2) {
+    public static long[] addAll(long[] array1, long... array2) {
         if (array1 == null) {
             return clone(array2);
         } else if (array2 == null) {
@@ -3170,7 +3167,7 @@
      * @return The new float[] array.
      * @since 2.1
      */
-    public static float[] addAll(float[] array1, float[] array2) {
+    public static float[] addAll(float[] array1, float... array2) {
         if (array1 == null) {
             return clone(array2);
         } else if (array2 == null) {
@@ -3199,7 +3196,7 @@
      * @return The new double[] array.
      * @since 2.1
      */
-    public static double[] addAll(double[] array1, double[] array2) {
+    public static double[] addAll(double[] array1, double... array2) {
         if (array1 == null) {
             return clone(array2);
         } else if (array2 == null) {