我有两个班级,房间(属于一栋楼)和大楼(有n个房间)。建筑类具有“列表”类型的属性“房间”,而房间类具有“建筑”类型的属性“建筑物”。 Room和Building都是抽象类的后代。
我正在根据csv文件中的数据创建新房间。每个房间都有一个“ building_code”列。我想找到一个具有属性“代码”(该属性在抽象类中声明)的对应值的建筑物,将其添加到房间的“建筑物”属性中,同时将房间添加到Buldings的“房间”列表中。
由于我想在导入数据的类中使用此功能,因此应该在Building类中创建一个方法来与Buldings and Rooms(CRUD操作)一起使用的另一个类吗?通过以下代码,我在For循环的行上得到了“不兼容的类型”异常:
public Building findByCode(String code, List buildings) {
for (Building b : buildings) {
if (b.code.equals(code)) {
return b;
}
}
return null;
}
答案 0 :(得分:1)
public static Building findBuilding(String code, List<Building> buildings) {
for (Building b : buildings) {
if (b.code.equals(code)) {
return b;
}
}
return null;
}
答案 1 :(得分:0)
您应该将建筑物定义为List<Building>
,而不仅仅是List
。那应该可以解决您的编译错误。
对于这种类型的查找器方法,如果它是一个业务对象,那么构建似乎是一个好地方。如果是模型/ DTO,则将逻辑放在其他位置(服务方法/实用程序方法)。模型/ DTO应该很薄,即Java是否具有struct
。