通过数组列表设置对象属性
Setting object attributes via a array list
基本上我正在做一个项目,其中 class 的某些 class 属性和名称存储在一个文本文件中。此处的目标是创建文本文件(我已经完成)中列出的特定数据类型(在本例中为 Car)的对象列表,然后将这些对象分配给文本文件中的数据类型。下面是我将使用的文本文件示例:
汽车:2辆
4 1 1 红色 3 80.5 20 60 2 aadawd
1 3 2 蓝色 3 80 30 20 1 aaxzd
自行车:3
2 1
2 2
2 3
基本上,'Car: 2'表示我们有2辆车。它下面的两行表示各自汽车的属性。为了不在不必要的信息上浪费时间,我只列出 Car 下方各行的数据类型:
Getters/setters 已经为汽车 class 建立。
至此,我将文件转换成一个名为list的ArrayList,其中文件的每一行代表的是数组的一个元素。这使我可以很容易地创建 Car 类型的 ArrayList。我现在需要做的就是设置 Car 的属性。有什么想法吗?
for (int i = 0; i < list.size(); i++) {
if (list.get(i).contains("Red")) {
carList.add(new RedCar());
} else if (list.get(i).contains("Blue")) {
carList.add(new BlueCar());
} else if (list.get(i).contains("Yellow")) {
carList.add(new YellowCar());
}
}
据我所知,您拥有所需的一切。要用属性填充您的 carlist,您必须创建一个对象并将其放在一个变量上,然后再将其推送到列表。
...
if (list.get(i).contains("Red")) {
//hopefully all cars inherts from Car
Car c = new RedCar();
final String[] attributes = list.get(i).split(" ");
c.setFirstAttr(attributes[0]);
c.setSecondAttr(attributes[1]);
//and so on
carList.add(c);
}
使用汽车的颜色作为属性可能是更好的方法。因为从这个角度看,车好像都一样,只是颜色不同
//you dont have to decide which type if car you create
for (int i = 0; i < list.size(); i++) {
//hopefully all cars inherts from Car
Car c = new Car();
final String[] attributes = list.get(i).split(" ");
c.setFirstAttr(attributes[0]);
//and so on
c.setColor(attributes[3]);
carList.add(c);
}
基本上我正在做一个项目,其中 class 的某些 class 属性和名称存储在一个文本文件中。此处的目标是创建文本文件(我已经完成)中列出的特定数据类型(在本例中为 Car)的对象列表,然后将这些对象分配给文本文件中的数据类型。下面是我将使用的文本文件示例:
汽车:2辆
4 1 1 红色 3 80.5 20 60 2 aadawd
1 3 2 蓝色 3 80 30 20 1 aaxzd
自行车:3
2 1
2 2
2 3
基本上,'Car: 2'表示我们有2辆车。它下面的两行表示各自汽车的属性。为了不在不必要的信息上浪费时间,我只列出 Car 下方各行的数据类型:
Getters/setters 已经为汽车 class 建立。
至此,我将文件转换成一个名为list的ArrayList,其中文件的每一行代表的是数组的一个元素。这使我可以很容易地创建 Car 类型的 ArrayList。我现在需要做的就是设置 Car 的属性。有什么想法吗?
for (int i = 0; i < list.size(); i++) {
if (list.get(i).contains("Red")) {
carList.add(new RedCar());
} else if (list.get(i).contains("Blue")) {
carList.add(new BlueCar());
} else if (list.get(i).contains("Yellow")) {
carList.add(new YellowCar());
}
}
据我所知,您拥有所需的一切。要用属性填充您的 carlist,您必须创建一个对象并将其放在一个变量上,然后再将其推送到列表。
...
if (list.get(i).contains("Red")) {
//hopefully all cars inherts from Car
Car c = new RedCar();
final String[] attributes = list.get(i).split(" ");
c.setFirstAttr(attributes[0]);
c.setSecondAttr(attributes[1]);
//and so on
carList.add(c);
}
使用汽车的颜色作为属性可能是更好的方法。因为从这个角度看,车好像都一样,只是颜色不同
//you dont have to decide which type if car you create
for (int i = 0; i < list.size(); i++) {
//hopefully all cars inherts from Car
Car c = new Car();
final String[] attributes = list.get(i).split(" ");
c.setFirstAttr(attributes[0]);
//and so on
c.setColor(attributes[3]);
carList.add(c);
}