Basically this is a simplified version of your problem:
if (condition)
int x = 10;
You can't do that in Java. You can't use a variable declaration as the single statement in an if
body... presumably because the variable itself would be pointless; the only purpose would be for the side effect of the expression used for the assignment.
If you really want the pointless declaration, use braces:
if (condition) {
int x = 10;
}
It's still useless, but at least it will compile...
EDIT: Responding to the comment, if you need to use the variable outside the if
block, you need to declare it before the if
block, and also make sure it's initialized before you read the value. For example:
// Note preferred style of declaration, not "long lls []"
long[] lls = null; // Or some other "default" value
if (ll == 100) {
// I always put the braces in even when they're not necessary.
lls = a1.val(ll);
}
// Now you can use lls
Or:
long[] lls;
if (ll == 100) {
lls = a1.val(ll);
} else {
// Take whatever action you need to here, so long as you initialize
// lls
lls = ...;
}
// Now you can use lls
Or possibly use a conditional expression:
long[] lls = ll == 100 ? a1.val(ll) : null;