关于java静态变量取值的问题。
我在AAA类中声明了一个静态变量,并在一个方法中给静态变量赋值,main方法中计时器持续调用这个方法。启动AAA类后,在BBB类中我要获取AAA类中的这个静态变量,但得到...
我在AAA类中声明了一个静态变量,并在一个方法中给静态变量赋值,main方法中计时器持续调用这个方法。启动AAA类后,在BBB类中我要获取AAA类中的这个静态变量,但得到的是null。我应该怎么取得这个静态变量。
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
public class AAA {
public static ArrayList<String> strs;
public void test(){
strs=new ArrayList<String>();
strs.add("a");
strs.add("b");
}
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TimerTask (){
@Override
public void run() {
new AAA().test();
System.out.println("qqqq~~"+strs.size());
}
};
timer.schedule (task,0L, 3000L);
}
}
import java.util.ArrayList;
public class BBB {
public ArrayList<String> ds(){
return AAA.strs;
}
public static void main(String[] args) {
System.out.println(new BBB().ds());
}
} 展开
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
public class AAA {
public static ArrayList<String> strs;
public void test(){
strs=new ArrayList<String>();
strs.add("a");
strs.add("b");
}
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TimerTask (){
@Override
public void run() {
new AAA().test();
System.out.println("qqqq~~"+strs.size());
}
};
timer.schedule (task,0L, 3000L);
}
}
import java.util.ArrayList;
public class BBB {
public ArrayList<String> ds(){
return AAA.strs;
}
public static void main(String[] args) {
System.out.println(new BBB().ds());
}
} 展开
3个回答
2015-03-31
展开全部
直接给值给str变量
package test1;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
public class AAA {
public static ArrayList<String> strs = test();
public static ArrayList<String> test(){
strs=new ArrayList<String>();
strs.add("a");
strs.add("b");
return strs;
}
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TimerTask (){
@Override
public void run() {
new AAA().test();
System.out.println("qqqq~~"+strs.size());
}
};
timer.schedule (task,0L, 3000L);
}
}
package test1;
import java.util.ArrayList;
public class BBB {
public static void main(String args[]){
System.out.println(new BBB().ds());
}
public ArrayList<String> ds(){
return AAA.strs;
}
}
package test1;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
public class AAA {
public static ArrayList<String> strs = test();
public static ArrayList<String> test(){
strs=new ArrayList<String>();
strs.add("a");
strs.add("b");
return strs;
}
public static void main(String[] args) {
Timer timer = new Timer();
TimerTask task = new TimerTask (){
@Override
public void run() {
new AAA().test();
System.out.println("qqqq~~"+strs.size());
}
};
timer.schedule (task,0L, 3000L);
}
}
package test1;
import java.util.ArrayList;
public class BBB {
public static void main(String args[]){
System.out.println(new BBB().ds());
}
public ArrayList<String> ds(){
return AAA.strs;
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你两个main方法是获取不到的,写在一个里,两个main相当于两个入口,进到的也不是同一块地方
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询