泛型如何用于嵌套列表

时间:2019-01-03 14:51:31

标签: java

我有一个会议中心课程,每个会议中心包含1..n个会议室,每个房间有0..n个预订。

我想遍历会议中心,为每个人创建一个包含所有预订的子列表,然后将该子列表添加到具有所有会议中心的所有预订的列表中

public List<ArrayList<Reservation>> findAllReservations() {
    List<ArrayList<Reservation>> allReservations = new ArrayList<>();

    for (MeetingCentre mc : this.getMeetingCentres()) {
        ArrayList<Reservation> currentMCReservations = new ArrayList<>();
        for (MeetingRoom mr : mc.getMeetingRooms()){
            if (mr.getReservations().size() > 0){
                currentMCReservations.addAll(mr.getReservations());
            }
        }
        if (currentMCReservations.size() > 0) {
            allReservations.add(currentMCReservations);
        }
    }
    return allReservations;
}

我想将此数据导出到JSON,当我尝试使用allReservations列表时,通用获取“丢失”,并且出现异常“对象无法转换为保留”

2 个答案:

答案 0 :(得分:1)

最好的简单解决方案是使用gson

    Gson gson = new Gson();
    String jsonList = gson.toJson(list_name);  // converts list to json
    System.out.println(jsonList);

答案 1 :(得分:1)

您需要一个ArrayList列表吗?

public String getAllReservationsJSON() {
    List<Reservation> allReservations = new ArrayList<>();

    for (MeetingCentre mc : this.getMeetingCentres()) {
        ArrayList<Reservation> currentMCReservations = new ArrayList<>();
        for (MeetingRoom mr : mc.getMeetingRooms()){
            if (mr.getReservations().size() > 0){
                currentMCReservations.addAll(mr.getReservations());
            }
        }
        if (currentMCReservations.size() > 0) {
            allReservations.addAll(currentMCReservations);
        }
    }

    Gson gson = new Gson();

    return gson.toJson(allReservations);
}