I am getting a compiling error for this code:
public class Matching {
public static int match = (int) Math.floor(Math.random()*cities.size()); //Error is here
}
I'm want to make "match" a global variable.
My compiling error is:
"Illegal static declaration in inner class testingProgram.Matching modifier 'static' is only allowed in constant variable declarations
Usage of static non-final variable during initialization."
Don't know what the error means, nor do I know how to fix it.
This happens because your Matching
class is located inside another class called testingProgram
, and is not static
.
Java allows static
fields inside an inner class only when the inner class itself is static
. You can fix this problem in several ways:
Matching
a static
inner class, Matching
a top-level class, or static int match
final, ie final static int match
Create the variable in some static class (main, for example) and make sure it gets passed to the constructor of this class. I don't know why you are doing this but the reason it's difficult is because it's not a good idea. If you need to save the state of 'match' then give more information.
public static void main() {
int match;
Matching m = new Matching(match);
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.