Хорошо, поэтому я хочу напечатать все элементы в случайном N-мерном массиве с помощью отражения.Решение прекрасно работает, за исключением того, что у меня есть N-1 пустых массивов в конце строки arraysString
.Например:
private int[] arr = {3, 4, 5};
private int[][] arrs = {{3, 4}, {3, 4, 5}, {3}};
Хорошо, когда я пытаюсь сериализовать первый массив, он напечатает -> [3, 4, 5], но когда я напечатаю второй -> [3, 4] [3, 4, 5] [3] [] печатается.Я не понимаю, почему это происходит.Вот моя функция:
private void serializeToArray(Object array, List<String> arraysAsString) {
StringBuilder builder = new StringBuilder();
List<String> arrayOutputs = new ArrayList<>();
int length = Array.getLength(array);
builder.append('[');
for (int i = 0; i < length; i++) {
Object arrayElement = Array.get(array, i);
if (isArray(arrayElement)) {
serializeToArray(arrayElement, arraysAsString);
continue;
}
arrayOutputs.add('"' + arrayElement.toString() + '"');
}
builder.append(String.join(",", arrayOutputs));
builder.append(']');
arraysAsString.add(builder.toString());
}
isArray ->
protected boolean isArray(Object obj){
return obj.getClass().isArray();
}