У меня есть список значений, некоторые из которых могут быть списками/коллекциями или отдельными значениями. В нотации JavaScript это может выглядеть так:
const input = [1,2,[3,4], [5,6], 7];
и я хочу получить:
const concatenated = [1,2,3,4,5,6,7];
Итак, у меня есть этот код Java:
ArrayList<T> concatenated = new ArrayList<>();
for (T v : input) {
try{
concatenated.addAll((Collection) v);
}
catch (Exception e1){
try{
concatenated.addAll((List) v);
}
catch (Exception e2){
concatenated.add(v);
}
}
}
но этот код кажется мне довольно ужасным. Во-первых, я не знаю, достаточно ли попытки приведения к списку или коллекции - есть ли другие типы, на которые я должен попытаться привести? Есть ли ошибки, которые я не должен игнорировать?
Как это сделать правильно?