gpt4 book ai didi

java - 静态变量失去其值

转载 作者:行者123 更新时间:2023-12-01 15:57:54 24 4
gpt4 key购买 nike

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

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com