2015-04-26 3 views
0

Я пытаюсь создать метод, который будет возвращать индекс внутри массива.Ошибка: несовместимые типы: Integer не может быть преобразован в Integer []

private static Integer[] day1 = new Integer[6]; 

public Integer[] getDay1(Integer team) { 
     return day1[team]; 
} 

Однако, когда я пытаюсь это сделать, он выделяет открывающий кронштейн после дня1 с этой ошибкой.

Days.java:32: error: incompatible types: Integer cannot be converted to Integer[] 
    return day1[team]; 
      ^

Любая идея, почему это так? Любая помощь была бы оценена

+0

Потому что вы не возвращаете массив Целых, вы возвращающие одно целое число из массива. –

+0

Который вы хотите возвратить? Массив или целое число? – Radiodef

+0

Просто один int, и это сработало. –

ответ

2

return day1[team]; вернет team -е значение вашего массива. Однако возвращаемый тип вашего метода - Integer [] (массив). Измените метод:

public Integer getDay1(Integer team) { 
     return day1[team]; 
} 
+0

избил меня на 7 секунд :) – svarog

+0

Ментально пинает себя за то, что не видел этого. –

+0

исключение на самом деле говорило вам, что не так в вашем коде :) – svarog

1

вы возвращаете Integer, когда вы определили ваш метод возвращает массив или целые числа, либо изменение

public Integer getDay1(Integer team) { 
    return day1[team]; 
} 

или

public Integer[] getDay1(Integer team) { 
    return day1; 
} 
1

Integer является одно целое значение, Integer[] - это массив одиночных Integer s. Подпись вашего метода getDay1 обещает массив как возвращаемое значение, но вы фактически возвращаете один единственный элемент (тот, который находится в позиции team).

Я предполагаю, что вы ищете

public Integer getDay1(Integer team) { 
     return day1[team]; 
} 
Смежные вопросы