I am working on Android project and I am getting an error which I cannot understand:
Array initializer is not allowed here
I tried to simplify my code and it comes down to this
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}; } }
What is going on here?
Array Initialization in Java To use the array, we can initialize it with the new keyword, followed by the data type of our array, and rectangular brackets containing its size: int[] intArray = new int[10]; This allocates the memory for an array of size 10 . This size is immutable.
In Kotlin There are Several Ways. Then simply initial value from users or from another collection or wherever you want. var arr = Array(size){0} // it will create an integer array var arr = Array<String>(size){"$it"} // this will create array with "0", "1", "2" and so on.
You should use
pos = new int[]{1,2,3};
You can only use the abbreviated syntax int[] pos = {0,1,2};
at variable initialization time.
private int[] values1 = new int[]{1,2,3,4}; private int[] values2 = {1,2,3,4}; // short form is allowed only at variable initialization
Your initialization statement is wrong: you must add square brackets to declare an array (and here you can omit the new
keyword because you're declaring and initializing the variable at the same time):
int[] pos = { 0, 1, 2 };
In the onCreate
method, you can't omit the new
keyword because the variable was already declared, so you have to write:
pos = new int[] { 2, 1, 0 };
You can read the Oracle documentation and the Java Language Specs for more details.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With