2015-12-12 73 views
-1

我遇到了一个奇怪的错误。在服务器启动期间,我在java类的init()方法中初始化了一组变量。我可以看到这个值在服务器启动过程中持续存在。但是,当我尝试通过WebUI登录时,这些本地变量缺失。局部变量丢失

但是,如果我将变量分配给静态块,它将保持打开状态。

我不知道这会如何发生。任何指针都会有所帮助。

Java版本:JRE1.7.0_40

我的一段代码看起来像

ClassA.java

public class ClassA { public static String testString; public static 
    void init() throws Exception { 
    testString = "testSTring222"; } } 

ClassB.java

ClassA.init(); System.out.println(ClassA.testString) 

请帮我摆脱这一点。

回答

0

这当然取决于你的服务器是什么。

使用一些静态变量。

0

A类

public class ClassA 
{ 
    public static String testString = "testSTring222"; 
    public static void main(String[] args) 
    { 

    } 
} 

B类

public class ClassB 
{ 
    static ClassA cA = new ClassA(); 
    public static void main(String[] args) 
    { 
     System.out.println(cA.testString); 
    } 
} 

所以,你应该参考Class A作为一个静态类,使和设置静态字符串时,你首先声明它作为一个变量

0

这可能是由于使用多个因为static变量在多个类加载器中不是全局的。即如果在两个不同的类加载器中加载了相同的类,那么你将拥有2个静态变量副本。