我有一個名爲「信息」的字符串的ArrayList,每個字符串保存有關我的類Student的實例的信息。 我嘗試將Arraylist轉換爲數組,然後使用split方法解析它。如何在java中的循環中創建新對象?
String[] Stringinfo = new String[info.size()];
Stringinfo = info.toArray(Stringinfo);
解析每一行後,我嘗試在for循環中創建一個新對象並將其添加到Students ArrayList中。會發生什麼是每當我創建這個新對象Student時,之前添加到Students ArrayList中的其他對象都會更改爲這個新對象。
String[] temp;
for(int i = 1; i < LineCount + 1 ; i++)
{
temp = Stringinfo[i].split(" ");
Student s = new Student(Integer.parseInt(temp[0]), Integer.parseInt(temp[1]), Integer.parseInt(temp[2]), Integer.parseInt(temp[3]), Integer.parseInt(temp[4]));
Students.add(s);
}
我試着在不同的點打印學生直到創建新的對象寄託都沒有大礙。 在任何時候,所有對象都具有與創建的最後一個對象相同的屬性值。
這是學生類的構造函數:
public Student(int certif, int class_id, int ave, int i, int a)
{
certification_num = certif;
class_id = class;
average_point = ave;
student_id = i;
age = a;
}
我搜索了很多,但找不到答案。很抱歉,如果答案很明顯,我是Java新手。 任何幫助,將不勝感激。 在此先感謝。
編輯:
public class Student{
public Student(){}
public Student(int certif, int class, int ave, int i, int a)
{
certification_num = certif;
class_id = class;
average_point = ave;
student_id = i;
age = a;
}
public static int get_certification_num(){
return certification_num;
}
public static int get_class_id(){
return class_id;
}
public static int get_average_point(){
return average_point;
}
public static int get_id(){
return student_id;
}
public static int get_age(){
return age;
}
private static int certification_num;
private static int class_id;
private static int age;
private static int node_id;
private static int student_id;
}
你能發佈更多的學生類的?我猜這些字段是靜態的...... – Steven
帶有你的學生構造函數的文件將不能編譯,因爲'class'不能用作變量名。請不要使用大寫字母來啓動變量名稱。 –
這不可能是您的真實代碼。你有一個叫做'class'的變量。 – khelwood