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 类构造函数是一种替代方法。
添加回答
举报