猿问

哪里有问题了??求高手解答!

import java.io.*;

import java.util.*;

class Coures{

String id;String name;

public Coures(String id,String name){

this.id = id;

this.name = name;

}

}

public class Test {

public List<Coures> Coureslist = null;

public Test(){

Coureslist = new ArrayList<Coures>();

}

String s = null;

int i = 0;

File f = new File("word.txt");

public void Addcoures(){

try {

FileReader fr = new FileReader(f);

BufferedReader bur = new BufferedReader(fr);

while((s=bur.readLine())!=null){

i++;

System.out.println("第"+i+"行"+s);

String str[] =s.split(";");

Coures co = new Coures(str[0],str[1]);

Coureslist.add(co);

}

System.out.println("有"+Coureslist.size()+"门课程");

bur.close();

fr.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

public void testIterator(){//迭代器

Iterator<Coures> it = Coureslist.iterator();

System.out.println("有如下课程了");

while(it.hasNext()){

Coures cr = (Coures)it.next();

System.out.println("课程:"+cr.id+":"+cr.name);

}

}

public static void main(String[] args) {

new Test().Addcoures();

System.out.println("****************************************************");

new BufferedTest().testIterator();

}

}

上面是代码  Word.txt文件中的内容如下:

1;英语

2;语文

3;数学


运行程序后迭代器输出Coureslist是空的 ,在Addcoures()方法中添加System.out.println("有"+Coureslist.size()+"门课程");语句测试显示Coureslist.size()等于3.

请问这是什么原因了,怎样才能让迭代器输出Coureslist内容???

慕粉4065503
浏览 1218回答 1
1回答

botao555

public static void main(String[] args) { Test test = new Test(); test.Addcoures(); System.out.println("****************************************************"); test.testIterator(); }main方法改成这样试试,你调用Addcoures()方法时new了一个Test对象,此时Coureslist里被正常赋值,但是你调用testIterator()时又new了一个Test对象,所以testIterator()里时Coureslist里并没有值。你应该只new一个Test对象,然后用这个对象分别调用Addcoures()和testIterator()就行了解决了问题的话望采纳!
随时随地看视频慕课网APP

相关分类

Java
我要回答