Java «Несоответствие типов: невозможно преобразовать из int [] [] в int» при возврате скопированного массива - PullRequest
0 голосов
/ 29 мая 2020

Я хотел создать функцию, возвращающую скопированный массив, но получаю такую ​​ошибку:

"Type mismatch: cannot convert from int[][] to int" on line 10,

и я не знаю, что не так.

public class Usun {

    public int newTable(int[] table[]) {
        int[] newTable[];
        for (int i = 0; i <= table.length; i++)  {
            newTable[i] = table[i];  
        }         
        return newTable;
    }
}

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

newTable - это двумерный массив. Вы пытаетесь вернуть этот массив в свой метод с типом возвращаемого значения int.

Измените тип возвращаемого значения вашей функции на int[][]. Кроме того, newTable неправильно инициализирован в вашем коде.

Кроме того, вы можете использовать встроенные методы, такие как Arrays#copyOf и т. Д., Для глубокого копирования массива, поскольку вам не нужно писать их самостоятельно.

0 голосов
/ 29 мая 2020

вы хотите вернуть массив int (int[]), а не int, также для объявления массива int вы используете int[] table, а не int[] table[]

, как @small_ticket, упомянутый в к его комментарию, вам необходимо инициализировать свой массив, иначе вы получите NullPointerException, потому что вы будете пытаться добавить элементы в неинициализированный массив, что приведет к ошибкам времени компиляции.

public class usun {
    public int[] newTable(int[] table) {

       int[] newTable = new int[table.length];
       for (int i = 0; i < table.length; i++)  {
          newTable[i] = table[i];  
       }         
       return newTable;
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...