asList

Arrays#asList()はプリミティブの配列は配列として扱わず、1つのオブジェクトとして処理されてしまうのでその代用。

public static List asList(Object array) {
    if (array == null) {
        return null;
    }
    if (array instanceof List) {
        return (List) array;
    }
    if (array.getClass().isArray()) {
        if (!array.getClass().getComponentType().isArray() && !array.getClass().getComponentType().isPrimitive()) {
            return Arrays.asList((Object[]) array);
        }
        List ret = new ArrayList();
        int size = Array.getLength(array);
        for (int i = 0; i < size; i++) {
            Object value = Array.get(array, i);
            if (value != null && value.getClass().isArray()) {
                ret.add(asList(value));
            } else {
                ret.add(value);
            }
        }
        return ret;
    }
    throw new IllegalArgumentException("not array");
}