简体   繁体   中英

Creating global variables - Java

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:

  • By making Matching a static inner class,
  • By making Matching a top-level class, or
  • By making 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM