我在静态与非静态的概念上苦苦挣扎。我正在研究这个 Thread 示例程序(已修改,最初来自这里),当我使用内部类时,我会得到错误:
Error: non-static variable this cannot be referenced from a static context
这是导致错误的代码:
public class Main2 {
public static void main(String[] args) {
Thread simple = new Thread(new SimpleTask());
simple.start();
}
class SimpleTask implements Runnable {
public void run() {
}
;
}
class DaemonTask implements Runnable {
public void run() {
int i = 0;
}
}
}
但是,当我将它分解为 3 个类时,没有错误.. 即如果我成功了:
public class Main2 {
/* contents */
}
class SimpleTask implements Runnable {
/* contents */
}
class DaemonTask implements Runnable {
/* contents */
}
然后它编译就好了。为什么我们把它分成另一个类很重要?