Помогите разобраться с трехмерным массивом
Есть функция, у которой параметр трехмерный массив:
public void setAnimatedView(int[][][] viewFrames){
...
}
Имеется четыре двумерных массива:
public static final int[][] KILL_PLAYER_ANIMATION_FIRST = new int[][]{
{4, 4, 4, 4, 4},
{4, 4, 4, 4, 4},
{4, 4, 4, 4, 4}
};
public static final int[][] KILL_PLAYER_ANIMATION_SECOND = new int[][]{
{4, 0, 4, 0, 4},
{0, 4, 0, 4, 0},
{4, 0, 4, 0, 4}
};
public static final int[][] KILL_PLAYER_ANIMATION_THIRD = new int[][]{
{0, 4, 0, 4, 0},
{4, 0, 4, 0, 4},
{0, 4, 0, 4, 0}
};
public static final int[][] DEAD_PLAYER = new int[][]{
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0}
};
Вот вызов этой функции:
super.setAnimatedView({
{ShapeMatrix.KILL_PLAYER_ANIMATION_FIRST},
{ShapeMatrix.KILL_PLAYER_ANIMATION_SECOND},
{ShapeMatrix.KILL_PLAYER_ANIMATION_THIRD},
{ShapeMatrix.DEAD_PLAYER}});
Компилятор не разрешает так делать: "Array initializer is not allowed here" Что не так?
Ответы (1 шт):
Автор решения: talex
→ Ссылка
Корректный код:
super.setAnimatedView(new int[][][]{
ShapeMatrix.KILL_PLAYER_ANIMATION_FIRST,
ShapeMatrix.KILL_PLAYER_ANIMATION_SECOND,
ShapeMatrix.KILL_PLAYER_ANIMATION_THIRD,
ShapeMatrix.DEAD_PLAYER});