传递变量-JAVA

传递变量-JAVA,java,Java,我试图在public void run()中使用变量Var(它来自另一个类)。在public RandomWalk(double v2){Var=v2;}中,我有正确的值。在public void run()中,Var的值始终为0。有什么解决办法吗 public class RandomWalk implements Runnable { public static double Var; public RandomWalk(double v2){ Var=v2; } public

我试图在
public void run()中使用变量
Var
(它来自另一个类)。在
public RandomWalk(double v2){Var=v2;}
中,我有正确的值。在
public void run()
中,
Var
的值始终为0。有什么解决办法吗

 public class RandomWalk implements Runnable
 {
public static double Var;

public RandomWalk(double v2){
  Var=v2;
}

public void run() {
    double p = currentTime / 1000.0 * 4;
    series0 = 20 + Math.cos(p * 2.2) * 10 + 1 / (Math.cos(p) * Math.cos(p) + 0.01);
    series1 = Var;
}

谢谢你的耐心

首先确保只设置一次
Var
。请删除“公用”并将“专用”添加到属性

private static double Var;
再次检查类中是否有此属性(
Var
)的某些setter或修饰符。如果有这样的方法,请检查您是否需要它们,如果需要,请检查它们是否设置了正确的值

现在您可以确定设置了
Var

然后检查方法的实现
run()
。在方法内部,不应声明另一个
Var
。如果有,则不使用全局
Var
,而是使用本地
Var
作为方法

如果在使用全局
Var
之前没有在某个地方再次设置,则最后检查此方法
run()
。检查以下位置:

Var=something

祝你好运

我无法复制此内容,是否有其他代码正在编辑
Var
或重置回0?为什么声明
Var
静态?和:构造函数和run方法是否由不同的线程执行?如何调用构造函数?您是否有调用RandomWalk(0.0)
的实例?请注意,字段/变量是静态的,这意味着所有代码将共享同一个实例/字段/(当忽略类加载器时,该类加载器将暂时超出范围)本质上,我们需要一个变量,因为您发布的代码缺失了很多。您可以完整地共享您的代码吗?正如Thomas所说,如何传递变量?您是否在“另一个类”中调用了新的RandomWalk(1.7)?更好的方法是声明它
private final double
,因为静态是不必要的,将其设置为final使其不可修改。是的,这会更好。