我有变量声明的问题。我试图使用多线程准备代码 但我有变量声明的问题。现在我很困惑,是否有可能将Scanner放入第二个而不是主类 - 我想是的,但我不知道如何声明变量。异常是 - 线程“main”中的异常java.lang.RuntimeException:无法编译的源代码 - 无法从静态上下文引用的非静态变量 在test1.PIN.main ...
public class PIN{
static int a;
class Runner extends Thread{
public void run(){
Scanner sc = new Scanner(System.in);
for(int i= 1; i<4; i++){
System.out.println("PUT your PIN: ");
int a = sc.nextInt();
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
Logger.getLogger(PIN.class.getName()).log(Level.SEVERE, null, ex);
}
if(a ==1234){
System.out.println("PIN OK");
} else {System.out.println("PIN NOK");}
}
}
}
public static void main(String[] args){
Runner r = new Runner();
r.start();
答案 0 :(得分:2)
声明Runner
static inner class
。非静态内部类是实例绑定的,因此您需要外部类实例来创建非静态内部类的对象。因为您的内部类不是静态的,所以无法在main
static-context
内访问它{/ 1}}
static class Runner extends Thread