function is_java_array(obj){ return !Array.isArray(obj) && obj.class.isArray() } function is_java_list(obj){ return obj instanceof java.util.List } print(is_java_array(v)) print(is_java_array(a)) print(is_java_array(r)) function flatten(arr) { var ret = []; if (is_java_list(arr)){ arr = to_array(arr) } else if (is_java_array(arr)) { arr = Java.from(arr); } for(var i = 0; i < arr.length; i++) { if((is_java_list(arr[i])) || (is_java_array(arr[i]))) { ret = ret.concat(flatten(arr[i])); } else { ret.push(arr[i]); } } return ret; } r = flatten(a)