请原谅我,因为我对这一切都是新手。 我的代码读取数字和名称的文本文件。每个名称后面有3组数字,每组3个被放入一个数组中。当数组被发送到循环中的另一个类时,数组的内容会被覆盖,我假设是因为它只是引用数组的地址,而不是实际值。
public void readMarksData(String fileName) throws FileNotFoundException
{
File dataFile = new File(fileName);
Scanner scanner = new Scanner(dataFile);
int[] marks = new int[3];
scanner.nextLine();
int i = 0;
while( scanner.hasNext() )
{
String studentName = scanner.nextLine();
while(i < 3)
{
try
{
marks[i] = scanner.nextInt();
i++;
}
catch ( InputMismatchException ex )
{
i=0;
}
}
scanner.nextLine();
storeStudentRecord(studentName, marks);
//scanner.nextLine();
i=0;
}
scanner.close();
}
将值存储在另一个类中的代码
private void storeStudentRecord(String name, int[] marks)
{
//int[] x = new int[3]
StudentRecord student = new StudentRecord(name, marks);
marksList.add(student);
}
其他类
中的构造方法 public StudentRecord(String nameInput, int[] marksInput)
{
// initialise instance variables
name = nameInput;
noOfMarks = 0;
marks = marksInput;
}
这让我疯了几个小时,所以任何帮助都会非常感激,谢谢。
答案 0 :(得分:0)
您可以修改构造函数,以便创建数组的副本并使用它:
public StudentRecord(String nameInput, int[] marksInput)
{
// initialise instance variables
name = nameInput;
noOfMarks = 0;
if(marksInput!=null)
marks = Arrays.copyOf(marksInput, marksInput.length);
else
marks = null;
}