Конструктор шаблона и создание объекта в основном классе - PullRequest
0 голосов
/ 23 октября 2018

Вот так выглядит конструктор.

public Polinom(ArrayList<Integer> koeficient)
{
    this.koeficienti = koeficienti;
}

Вот так я создаю массив и вставляю элементы.

int arr[] = new int[n];
    for(int i = 0; i < n; i++)
    {
        arr[i] = input.nextInt();
    }

И когда я пытаюсь создать объект наподобиеthis:

Polinom arr3 = new Polinom(arr);

Это говорит мне, что «Конструктор Polinom (int []) не определен. Я хорошо знаю язык программирования Java, но знаком с c ++, но у меня большие проблемы с синтаксисом.

1 Ответ

0 голосов
/ 23 октября 2018

int[] (массив int) не является ArrayList<Integer> (List из Integer, в частности ArrayList).

Вы бы хотели использовать List:

List<Integer> list = new ArrayList<>(n);
for(int i = 0; i < n; i++)
{
    list.add(input.nextInt());
}

, где ваш конструктор будет:

public Polinom(List<Integer> koeficienti)
{
    // Generally not best practice to just remember the list passed in; instead,
    // make a *defensive copy* of it so this instance doesn't share the list with
    // the caller. (Or accept an immutable list.)
    this.koeficienti = new ArrayList<Integer>(koeficienti);
}

или , напишите вашконструктор такой, что он ожидает массив:

public Polinom(int[] entries)
{
    this.koeficienti = new ArrayList<Integer>(entries.length);
    for (int entry : entries) {
        this.koeficienti.add(entry);
    }
}

Вам могут пригодиться следующие официальные руководства по Java:

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