今天做一个java多线程发送数据的例子时报错:
No enclosing instance of type XXX is accessible, Must qualify....
代码如下:
public class SendJSON {
public static void main(String[] args){
//send();
for(int i = 0; i < 2000; i++){
SendTask task = new SendTask(i);//此处报错
}
}
//使用多线程测试
public class SendTask extends Thread{//内部类
private int count;
public SendTask(int count){
super();
this.count = count;
}
@Override
public void run(){
send(count);
}
}
}
网上找到了答案:原来是不能在静态方法中调用动态内部类。
SendTask是个动态内部类,而我在静态的main方法中调用了这个类。
解决办法:把SendTask设为静态类,加static 修饰即可。
public static class SendTask extends Thread