3 回答

TA貢獻1804條經驗 獲得超2個贊
關于每個數組條目背后的基礎對象的信息不足,但您可以使用構造函數參數將它們創建為單行代碼。
class MyArrayObject {
private String name;
private String course;
private long id;
public MyArrayObject(String name, String course, long id) {
this.name = name;
this.course = course;
this.id = id;
}
}
...然后像這樣填充你的數組
students[0] = new MyArrayObject("John Doe", "2BA", 444444);
students[1] = new MyArrayObject("Jane Doe", "2BA", 445566);
students[2] = new MyArrayObject("John Smith", "2BSc", 442200);
它仍然是意大利面條式代碼,但更少。
為了給您更好的答案,我們需要有關該對象的更多信息,它來自哪里,您擁有哪些數據源,以及為什么要使用此類硬編碼值。

TA貢獻1943條經驗 獲得超7個贊
您可以使用包含您的數據的文件。您可以選擇任何格式(XML、json、CSV 等)。假設您選擇了 CSV,這是表示數據的最簡單的格式之一。CSV 中的每一行將包含:
姓名、課程、ID
編寫一些代碼將文件逐行讀取到字符串中。然后對于每一行(每個字符串)你可以這樣做:
String [] studentsStr = line.split(',');
然后你的數組將在索引處保存 3 個字符串:
1:姓名 2:課程 3:ID
由于您的 CSV 文件可能包含不確定大小的學生,因此您可以使用 ArraList。
聲明數組列表
List<Student> studentL = new ArrayList<>();
對于 CSV 文本文件中的每一行:
Student std = new Student();
std.setName(studentsStr[0]);
std.setCourse(studentsStr[1]);
std.setID(studentsStr[2]);
studentL.add(std);
然后,您可以將任意數量的學生添加到 CSV 中,而無需對代碼進行任何更改。

TA貢獻1836條經驗 獲得超13個贊
真正的應用程序永遠不會像您在這里所做的那樣以硬編碼方式獲取業務價值。它們通常接受來自用戶輸入、數據庫或其他一些系統的值,并使用循環來處理基于集合和數組的數據結構。如果您正在為單元測試用例填充數據,那么使用 Student 類構造函數是一種替代方法。
添加回答
舉報