I have the following array:
class Foo {
int[] myArray;
int val1;
int val2;
int val3;
int val4;
Foo(int val1, int val2, int val3, int val4) {
this.myArray = new int[4];
myArray = val1, val2, val3, val4;
}
}
But I get the error message “Syntax Error - Missing operator, semicolon, or ‘}’ near ‘,’?” How can I add values to my array? I read that the .append method is inefficient (and I’m using the array mostly for efficiency).
void setup() {
println(new Foo(10, 20, 30, 40).myArray);
exit();
}
class Foo {
int[] myArray;
Foo(int val1, int val2, int val3, int val4) {
myArray = new int[] {
val1, val2, val3, val4
};
}
}
void setup() {
println(new Foo(10, 20, 30, 40).myArray);
exit();
}
class Foo {
int[] myArray;
Foo(int... vals) {
myArray = vals;
}
}
1 Like
Are these two alterantive options @GoToLoop? Why can’t I specify the length of the array with new int[4]
?
Yes. 1st example is your fixed code. While 2nd 1 is an alternative using variable arguments.
The statement this.myArray = new int[4];
is correct.
However the following myArray = val1, val2, val3, val4;
isn’t valid Java syntax!
Once a Java array is created we’d have to initialize each index 1 by 1:
Foo(int val1, int val2, int val3, int val4) {
myArray = new int[4];
myArray[0] = val1;
myArray[1] = val2;
myArray[2] = val3;
myArray[3] = val4;
}
Therefore my recommendation is to go w/ either of my 2 examples for a shorter code.
More about Java array creation & initialization:
1 Like
This works perfectly. Thanks