3 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
關(guān)于每個(gè)數(shù)組條目背后的基礎(chǔ)對(duì)象的信息不足,但您可以使用構(gòu)造函數(shù)參數(shù)將它們創(chuàng)建為單行代碼。
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;
}
}
...然后像這樣填充你的數(shù)組
students[0] = new MyArrayObject("John Doe", "2BA", 444444);
students[1] = new MyArrayObject("Jane Doe", "2BA", 445566);
students[2] = new MyArrayObject("John Smith", "2BSc", 442200);
它仍然是意大利面條式代碼,但更少。
為了給您更好的答案,我們需要有關(guān)該對(duì)象的更多信息,它來(lái)自哪里,您擁有哪些數(shù)據(jù)源,以及為什么要使用此類硬編碼值。

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

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
真正的應(yīng)用程序永遠(yuǎn)不會(huì)像您在這里所做的那樣以硬編碼方式獲取業(yè)務(wù)價(jià)值。它們通常接受來(lái)自用戶輸入、數(shù)據(jù)庫(kù)或其他一些系統(tǒng)的值,并使用循環(huán)來(lái)處理基于集合和數(shù)組的數(shù)據(jù)結(jié)構(gòu)。如果您正在為單元測(cè)試用例填充數(shù)據(jù),那么使用 Student 類構(gòu)造函數(shù)是一種替代方法。
添加回答
舉報(bào)