java - 静态变量失去其值

标签 java static

我有一个带有静态变量的辅助类,用于在两个类之间传递数据。

public class Helper{
    public static  String paramDriveMod;//this is the static variable in first calss
}

该变量用于以下第二类方法

    public void USB_HandleMessage(char []USB_RXBuffer){
    int type=USB_RXBuffer[2];
    MESSAGES ms=MESSAGES.values()[type];
    switch(ms){
        case READ_PARAMETER_VALUE:  // read parameter values
            switch(prm){
                case PARAMETER_DRIVE_MODE:  // paramet drive mode
                    Helper.paramDriveMod =(Integer.toString(((USB_RXBuffer[4]<< 8)&0xff00)));
                    System.out.println(Helper.paramDriveMod+"drive mode is selectd ");
                    //here it shows the value that I need...........
            }
    }
    //let say end switch and method
}

下面是使用上面类方法的第三类方法

public void buttonSwitch(int value) throws InterruptedException{
    boolean bool=true;
    int c=0;
    int delay=(int) Math.random();
    while(bool){
        int param=3;
        PARAMETERS prm=PARAMETERS.values()[param];
        switch(value){
            case 0: 
                value=1;
                while(c<5){
                    Thread.sleep(delay);                
                    protocol.onSending(3,prm.PARAMETER_DRIVE_MODE.ordinal(),dataToRead,dataToRead.length);//read drive mode
                    System.out.println(Helper.paramDriveMod+"  drive mode is ..........in wile loop");//here it shows null value
                }
                //break; ?
        }
    }
    //let say end switch and method
}

该变量失去其值的原因是什么?

最佳答案

我是否可以建议要在类之间传递数据,使用单独的对象而不是全局变量?

根本不清楚您对 protocolImpl 中的代码有何期望来执行 - 正如 templatetypedef 提到的,您没有在该文件或 param 中显示有效的 Java 代码类(两者都不遵循 Java 命名约定)。

一个简短但完整的示例确实会有所帮助,但总的来说,我建议您首先避免使用此模式。从对象的角度思考,而不是全局变量。

关于java - 静态变量失去其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4698652/

相关文章:

java - 为什么某些函数的执行时间相差很大?

java - 将音乐复制到 iPod 的 API

c# - 在多线程(或 Web)c# 项目中使用静态属性的风险

c# - 公共(public)静态方法+接口(interface)

c++ - 静态对象上的 shared_ptr 好吗?

java - 如果静态成员不在堆上,那么静态成员住在哪里?

java - 多个字段上的对象列表分组 Java 8

java - Kotlin 如何将 val 作为 java 类的关键字

java - 单元测试 gwt-dispatch

static - C++/CLI,类声明外的静态构造函数