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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 走遍世界找寻你 中级黑马   /  2013-11-13 20:34  /  850 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package itcast.interview.traffic;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class Road {

        private List<String> vehicles = new ArrayList<String>();
        private String name=null;
        public Road(String name){
                this.name = name;

                ExecutorService pool= Executors.newSingleThreadExecutor();
                pool.execute(new Runnable(){
                        public void run() {
                                for(int i = 1;i < 1000;i++)
                                        Thread.sleep(1000);
                                        vehicles.add(Road.this.name + "_" + i);
                                }
                });
        }
}
i有什么问题?为什么会这样。

3 个回复

倒序浏览
  for(int i = 1;i < 1000;i++)
                                        Thread.sleep(1000);
                                        vehicles.add(Road.this.name + "_" + i);
                                }
这几句话里,for循环里面只是有 Thread.sleep(1000);这句话,而 vehicles.add(Road.this.name + "_" + i);这句话不在for循环里面,因此不能使用for循环里面的i变量,你可能是for循环下面少加了"{}"
回复 使用道具 举报

  1. <P>//你这是太马虎了</P>
  2. <P>public class Road {

  3. private List<String> vehicles = new ArrayList<String>();
  4. private String name=null;
  5. public Road(String name){
  6. this.name = name;

  7. ExecutorService pool= Executors.newSingleThreadExecutor();
  8. pool.execute(new Runnable(){
  9. public void run() {
  10. for(int i = 1;i < 1000;i++){//for 循环是有方法体的,写在{}内,而你的程序正好缺了这个左右花括号;
  11. Thread.sleep(1000);
  12. vehicles.add(Road.this.name + "_" + i);}
  13. }
  14. });
  15. }
  16. }</P>
复制代码

点评

赞一个  发表于 2013-11-14 09:26
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马