我正在尝试让我的网络代码运行一个线程。我有一个继承自Thread的类。当我尝试创建它的实例时,
cSecureThread cRun=new cSecureThread();
我收到以下错误:“无法访问类型为cBitrex的封闭实例”
这是代码块
public class cSecureThread extends Thread {
String reply=null;
String url;
public void run()
{
// GetSecureBitrexApi(url);
}
};
static String fn;
static String GetSecureBitrexApiThread( String url)
{
// Line below creats error
cSecureThread cRun=new cSecureThread();
cRun.url=url;
System.out.println("XXXXXXXXXXXXXXXXX start thread XXXXXXXXXXXXXXXXXXXX");
cRun.start();
try {
// wait 10 seconds to make api call
cRun.join(1000*30);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("XXXXXXXXXXXXXXXXX end thread XXXXXXXXXXXXXXXXXXXX");
fn= cRun.reply;
return fn;
}
答案 0 :(得分:0)
看起来整个代码块都嵌入了一个名为" cBitrex"的类中。在另一个类中定义的非static
类维护对该外部类的实例的引用。因此,它不能在该外部类的static
方法中使用。请参阅here for more details。
所以你的修复可能是宣布
public static class cSecureThread extends Thread {
// ...
}
也就是说,只需添加static
关键字。
(注意我说"看起来像"和#34;可能"因为你没有提供大量的背景......)