Android, инициализатор массива Java здесь запрещен
Я работаю над проектом Android и получаю сообщение об ошибке, которое я не могу понять "инициализатор массива здесь не разрешен"
Я попытался упростить мой код, и это сводится к этому
public class MainActivity extends Activity{
int pos = {0,1,2};
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pos = {2,1,0};
}
}
Спасибо за любые решения, но я был бы признателен, если бы вы могли объяснить, что здесь происходит
Ответы
Ответ 1
Вы должны использовать
pos = new int[]{1,2,3};
Вы можете сделать это только int pos = {0,1,2};
при переменном времени инициализации.
private int[] values1 = new int[]{1,2,3,4};
private int[] values2 = {1,2,3,4}; // short form is allowed only at variable initialization
Ответ 2
Ваше утверждение инициализации неверно: вы должны добавить квадратные скобки, чтобы объявить массив (и здесь вы можете опустить new
ключевое слово, потому что вы объявляете и инициализируете переменную одновременно):
int[] pos = { 0, 1, 2 };
В методе onCreate
вы не можете опустить ключевое слово new
потому что переменная уже была объявлена, поэтому вы должны написать:
pos = new int[] { 2, 1, 0 };
Вы можете прочитать документацию Oracle и спецификации языка Java для более подробной информации.
Ответ 3
используйте следующий синтаксис, чтобы объявить/инициализировать и очистить массив, а затем заполнить его данными:
String[] menuArray = {};
menuArray = new String[]{"new item","item 2"};