此令牌后的预期标识符错误

时间:2018-01-13 09:25:36

标签: java

Thread thread1 = new Thread() {
    public void run() {

    }
};

Thread thread2 = new Thread() {
    public void run() {

    }
};

thread1.start();
thread2.start();

如何摆脱这个错误?在thread1.start()和thread2.start()行中,我得到了相同的错误 - >令牌启动时出现语法错误,此令牌后预期的标识符。

2 个答案:

答案 0 :(得分:2)

  

令牌启动时出现语法错误,此令牌后预期的标识符。

表示您声明了这些语句:

thread1.start();
thread2.start();

作为班上的成员。
但这些都不是有效的成员声明。

这些不会产生任何问题,因为这些是有效的声明:

Thread thread1 = new Thread() {
    public void run() {

    }
};

Thread thread2 = new Thread() {
    public void run() {

    }
};

作为替代方案,您可以在初始化程序或方法中移动start()调用语句 以下是初始化程序的示例:

public class Foo {

    Thread thread1 = new Thread() {
        public void run() {

        }
    };

    Thread thread2 = new Thread() {
        public void run() {

        }
    };

    {
      thread1.start();
      thread2.start();
    }

}

或者如果它更有意义,您还可以将字段更改为局部变量并在方法中声明整个语句:

public class Foo {

    public void myMethod(){    

       Thread thread1 = new Thread() {
          public void run() {

          }
       };

       Thread thread2 = new Thread() {
         public void run() {

        }
       };

       thread1.start();
       thread2.start();
    }

}

答案 1 :(得分:0)

把它放在main方法中。如果你把它放在里面它会正常工作

public static void main(String args[]){
   //your code
}