Как конвертировать список в список ? - PullRequest
0 голосов
/ 06 августа 2020

Как в convert, как преобразовать List<List<String>> в List<List<Object>>? Например, getValue() возвращает List<List<String>>, а затем мне нужно передать этот список конструктору адаптера как List<List<Object>>. Я не собираюсь обобщать этот конструктор. Как я могу это сделать? Когда я пытаюсь кастовать, я получаю Inconvertible types ошибку

new TableTimetableAdapter(Repo.getValue());

Ответы [ 3 ]

3 голосов
/ 06 августа 2020

Приведение действительно должно работать ... Вам не разрешено приводить List<List<String>> к List<List<Object>>, но вы можете просто применить его к List следующим образом:

new TableTimetableAdapter((List) Repo.getValue());
0 голосов
/ 06 августа 2020

Я думаю, вы не можете просто привести список одного типа к другому типу, вам нужно будет сопоставить содержимое списков с желаемым подтипом.

Вы можете сделать что-то вроде этого:

List<List<Object>> objects = Repo.getValue().stream()
        .map(strings -> strings.stream().map(string -> (Object) string).collect(Collectors.toUnmodifiableList()))
        .collect(Collectors.toUnmodifiableList());
0 голосов
/ 06 августа 2020

Так как List<List<String>> является более конкретным c, чем List<List<Object>>, вам не нужно выполнять приведение.

...