我想在 while 循环内创建多个对象并访问 JAVA 8 外部的所有对象。目前使用列表来存储对象,但所有对象都被最后一个对象(最后创建的)替换。
我已经尝试在尝试中初始化列表,在尝试之外,但没有任何效果。
这是我的 test1.java,
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class test1 {
public static void main(String[] args){
try {
List<test2> objList=new ArrayList<>();
BufferedReader encReader = new BufferedReader(new FileReader("./asd.txt"));
String eachLine;
while ((eachLine = encReader.readLine()) != null) {
String[] data = eachLine.split("\\|");
if(true){
objList.add(new test2(data[0], data[1]));
}
} // While ends here
objList.forEach(x -> x.printEncLoc());
}catch (IOException e) {
e.printStackTrace();
}
}
}
这是我的 test2.java,
public class test2 {
private static String s1;
private static String s2;
test2(String s1new, String s2new){
s1=s1new;
s2=s2new;
}
public static void printEncLoc(){
System.out.println("s1:"+s1+" s2:"+s2);
}
}
这是我的输入文件示例 (asd.txt)
hello|123
qwe|klj
它每次在 forEach 行中只调用最后一个对象的 printEncLoc 函数。它打印输出如下。
s1:qwe s2:klj
s1:qwe s2:klj
这里有什么问题?
拉丁的传说
相关分类