总是出现 无法从静态上下文中引用非静态 变量 this,实在不知问题在哪了!

huakaiyijian 2007-10-13 10:59:27
public class ThreadTT {

/**
* Method main
*
*
* @param args
*
*/
static String str="";
public static void main(String[] args) {
// TODO: Add your code here
new Thread(new Say()).start();
int i=0;
while(true)
{
synchronized(str)
{
if(i==5000)
return;
System.out.println("ni hao.");
i++;
}
}
}

class Say implements Runnable
{
public void run()
{
int i=0;
while(true)
{
synchronized(str)
{
if(i==5000)
return;
System.out.println("hello world.");
i++;
}
}
}
}
}
求哪为大哥指点迷津!
...全文
125 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
shx99717 2007-10-13
  • 打赏
  • 举报
回复
有两种方法能解决你得问题
××××××××××××
×× 第一种 ×××
××××××××××××
定义clas Say 为static,使Say 完全独立出来
比如
static class Say implements Runnable ....

××××××××××××
×× 第二种 ×××
××××××××××××
在main 中,用ThreadTT 这个类的实体创建Say实体
比如
public static void main(String[] args) {
....
ThreadTT t = new ThreadTT();
new Thread(t.new Say()).start();
....
}
注意这里 t.new 说明ThreadTT 和 Say有包含关系,所以需要一个ThreadTT实体

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧