1. 基本数据类型的数组无法自动封装为对象数据类型的数组
  2. 数组同样可获取到class对象,通过is.getClass().isArray()判断是否为数组
  3. 如果为数组,需要通过args instanceof Object[] 或者 args instanceof int[] 判断是哪种数据类型的数组,之后再进行转换,否则会转换异常
  4. 数组包括基本数据类型的数组均通过Object(注意非Object [])入参接收,确定该数组的数据类型后,可转为该类型的数组
  5. Arrays的asList方法只对数据类型为对象类型的数组有效,基本数据类型的数组无效;基本数据类型调用该方法时,会把整个数组当作object放入list中返回
  6. 数组的打印结果为[Ljava.lang.String;@5387f9e0,L数组类型;@地址
  7. 如果要打印出数组的内容,使用Arrays.toString(args);

附:将各种数组转需要的集合类

package com.kanche.bridge.transfer;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
/**
 * Created by liukai on 2017/9/10.
 */
public class ArrayUtil {

    //todo  改为log4j logger
    private static Logger logger = new Logger();

    public static Collection array2Collection(Object o,Class<? extends Collection> clazz) throws Exception{

        if(o instanceof Collection){
            return (Collection)o;
        }

        if(!o.getClass().isArray()){
            throw new Exception("o is not array");
        }
        //对象数组
        if(o instanceof Object[]){
            logger.info("o is object array!");
            return Arrays.asList(o);
        }
        Collection result = null;
        if(clazz != null){
            result = clazz.newInstance();
        }else{
            result = new HashSet();
        }
        //HashSet result = new HashSet();
        //基本数据类型byte char int float double boolean short long 数组
        if(o instanceof byte[]){
            logger.info("o is byte array!");
            byte[] array = (byte[])o;
            for(byte arr : array){
                result.add(arr);
            }
        }
        if(o instanceof char[]){
            logger.info("o is char array!");
            char[] array = (char[])o;
            for(char arr : array){
                result.add(arr);
            }
        }
        if(o instanceof int[]){
            logger.info("o is int array!");
            int[] array = (int[])o;
            for(int arr : array){
                result.add(arr);
            }
        }
        if(o instanceof float[]){
            logger.info("o is float array!");
            float[] array = (float[])o;
            for(float arr : array){
                result.add(arr);
            }

        }
        if(o instanceof double[]){
            logger.info("o is double array!");
            double[] array = (double[])o;
            for(double arr : array){
                result.add(arr);
            }
        }
        if(o instanceof boolean[]){
            logger.info("o is boolean array!");
            boolean[] array = (boolean[])o;
            for(boolean arr : array){
                result.add(arr);
            }
        }
        if(o instanceof short[]){
            logger.info("o is short array!");
            short[] array = (short[])o;
            for(short arr : array){
                result.add(arr);
            }
        }
        if(o instanceof long[]){
            logger.info("o is long array!");
            long[] array = (long[])o;
            for(long arr : array){
                result.add(arr);
            }
        }


        return result;



    }
    public static void main(String []args){
        try{
            //对象
            args = new String []{"a","b","c"};
            Collection oc = array2Collection(args,null);
            logger.info(oc);
            //byte
            byte[] barry = new byte []{1,4,2,5};
            Collection bc = array2Collection(barry,ArrayList.class);
            logger.info(bc);
            //char
            char[] carry = new char []{'l','i','u'};
            Collection cc = array2Collection(carry,ArrayList.class);
            logger.info(cc);
            //int
            int[] iarry = new int []{1,4,2,5};
            Collection ic = array2Collection(iarry,ArrayList.class);
            logger.info(ic);
            //int
            double[] darry = new double []{1,4,2,5};
            Collection dc = array2Collection(darry,ArrayList.class);
            logger.info(dc);
            //int
            float[] farry = new float []{1,4,2,5};
            Collection fc = array2Collection(farry,ArrayList.class);
            logger.info(fc);
            //int
            boolean[] booarry = new boolean []{true,false,false,true};
            Collection booc = array2Collection(booarry,ArrayList.class);
            logger.info(booc);
            //short
            short[] sarry = new short []{1,4,2,5};
            Collection sc = array2Collection(sarry,ArrayList.class);
            logger.info(sc);
            //long
            long[] larry = new long []{1,4,2,5};
            Collection lc = array2Collection(larry,ArrayList.class);
            logger.info(lc);
        }catch(Exception e){
            e.printStackTrace();
        }
    }

}
class Logger{
    static void info(String content){
        System.out.println(content);
        System.out.println("---------");
    }
    static void info(Collection content){
        for(Object o : content){
            System.out.print(o+" ");
        }
        System.out.println();
        System.out.println("---------");
    }
}