A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王睿 中级黑马   /  2012-3-2 23:27  /  1629 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1.                  Thread thread = new Thread(){
  2.                         @Override
  3.                         public void run() {
  4.                                 while(true){
  5.                                         try {
  6.                                                 Thread.sleep(1000);
  7.                                         } catch (InterruptedException e) {
  8.                                                 e.printStackTrace();
  9.                                         }
  10.                                         //这里eclipse提示不能引用另一方法中定义的内部类中非终态变量 thread
  11.                                         System.out.println(thread.currentThread().getName());
  12.                                         System.out.println(this.getName());
  13.                                 }
  14.                         }
  15.                 };
  16.                 thread.start();
复制代码


我用的是eclipse3.7和java1.7,是版本的问题吗?
  1.            final   Thread thread = new Thread(){
  2.                         @Override
  3.                         public void run() {
  4.                                 while(true){
  5.                                         try {
  6.                                                 Thread.sleep(1000);
  7.                                         } catch (InterruptedException e) {
  8.                                                 e.printStackTrace();
  9.                                         }
  10.                                         //上面加上 final后又提示:局部变量 thread 可能尚未初始化
  11.                                         System.out.println(thread.currentThread().getName());
  12.                                         System.out.println(this.getName());
  13.                                 }
  14.                         }
  15.                 };
  16.                 thread.start();
复制代码

2 个回复

正序浏览
创建线程的方式不对,有两种方法:
1)向Thread中传入Runnable对象,如new Thread(new Runnable(){public void run(){......}})
2)继承Thread,通过Thread的子类创建对象,并在子类中重写run方法
Thread t=new Mythread();
cllass Mythread extends Thread{.....重写run方法....}

楼主通过直接Thread t=new Thread();当然会出现错误提示。
回复 使用道具 举报
晕了我大意了,就当方面教材吧,thread应该大写T。{:soso_e106:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马