
代码如上,readTxt.readTxtfile就是一个外部类的方法,为什么现在实例化这个方法后
System.out.println(x.get(0).StudentID)这个还显示出超出字节。
不是用x当参数代入readTxt.readTxtfile中了吗?难道x在方法中内属于局部变量,这样的话如何调用出来呢?
------解决思路----------------------
你的readTxtFile 这个方法里面有点问题
main方法中的x是指向的是 = 号后面的 new ArrayList<Student>();
传进readTxtFile 方法的是x的拷贝,x的拷贝指向的是外面的 new ArrayList<Student>();
你在readTxtFile 方法内 x = new ArrayList<Student>(); 将x 的拷贝指向了新的内存地址
这时候,readTxtFile 里面的x跟main方法里面的x 已经分别指向不同的内存地址了
你操作readTxtFile 里面的x 对main方法里面的x 不会产生任何影响了
将readTxtFile 方法内的 x = new ArrayList<Student>(); 去掉就可以了