传递变量-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使其不可修改。是的,这会更好。