Как передать ArrayList методу в Java? - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь передать специфицированный c ArrayList в качестве параметра во время выполнения (я использую BlueJ). Но когда я передаю {5, 2, 9, 1, 7, 4, 6, 3, 8} в свой метод, я получаю сообщение об ошибке: «недопустимая инициализация для java .util.List».

Вот суть моего кода:

public static List<Integer> method(List<Integer> items)
    {
        List<Integer> list = new ArrayList<Integer>();
        int first = items.get(0);
        list.add(first);
        return list;
     }

1 Ответ

2 голосов
/ 08 марта 2020

Вы должны вызвать свой метод, передав экземпляр List (конечно, подкласса), например:

method(Arrays.asList(5, 2, 9, 1, 7, 4, 6, 3, 8));

Или этот более новый синтаксис в Java 9 и позже:

method(List.of(5, 2, 9, 1, 7, 4, 6, 3, 8));

Ваш код { 5, 2, 9, 1, 7, 4, 6, 3, 8 } создает массив (см. Tutorial ). Но ваш метод не принимает массив. Ваш метод объявляет, что он принимает объект типа ArrayList, класс из Java Collections Framework . Класс ArrayList использует внутренний массив, но не сам массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...