现在要从多个线程取A中的某个变量c,我的做法是使用static方法取c(因为new A实在不方便),所以我把c定义成了static变量,但是c又是在构造函数里面赋值的,请问这么写好不好?有没有别的好办法?举例:
class A{
private static String c; public A(String c1){
this.c =c1;
} public static String getparam(){
return c;
}
}
...........线程里面getparam()
class A{
private static String c; public A(String c1){
this.c =c1;
} public static String getparam(){
return c;
}
}
...........线程里面getparam()
直接 private String c 就可以了
因为你用A.getparam()的时候,因为你没有调用构造函数呀!你的c就是没有被赋值的!所以getparam()得到的返回值是0;
你可以这样写!
public static String getparam(String c1){
return c=c1;
}
调用的时候直接 A.getparam(""); 就ok了!
String c;public A(String c1){
this.c =c1;
}public static String getparam(){
return A.c;
}
}
更好..
public static void setC(String s){
c = s;
}
class B{
A a = new A(c1);
}class A{
private String c;
A(String c1){
this.c = c1;} createThread(){
new D().start();} notiD(){
notify();//唤醒线程
}
}class D extends Thread{
run(){
while(true){
wait();
if(...)//判断条件含方法,取A中的变量c;如果方法满足,则继续下面否则返回while去wait();
{ }else{continue;}
}
}
}
我的意思就是线程D中的方法如何写?
可能导致你的想法无法实现.因为只有new一个A,这个变量才会有初值.