class Param implements Runnable {
int c;
public Param(int a, int b){
c = a+b;
}
public void run(){
// System.out.println(a); // <<<<----What I'm going to do. it's impossible.
}
}
public class ParamTest {
public static void main(String args[]){
Runnable r = new ThreadParam(10,20);
new Thread(r).start();
}
}
在上面的代码中,如何打印“a”的值?我的目标是,当我在main方法中调用Runnable r = new ThreadParam(10,20)
时,我想打印“a”的值 - &gt; 10
。这不可能吗?如果我将int a
声明为run()方法,则“a”的结果为“0”。我想结果“10”。我怎么能这样做?
答案 0 :(得分:3)
局部变量和参数仅存在于声明它们的函数内
您需要将其存储在类中的字段中,就像存储c
一样。
答案 1 :(得分:2)
创建另一个实例变量以保存a
值:
int a;
并在构造函数中将其复制下来:
this.a = a;
然后你可以用另一种方法访问它。