¿Cómo funciona el genérico para las listas anidadas?

Tengo una clase de centro de reuniones, cada centro de reuniones contiene 1..n salas de reuniones y cada sala tiene 0..n reservas.

Quiero iterar por los centros de reuniones, para que todos creen una sublista con todas sus reservas y luego agreguen la sublista a la lista con todas las reservas de todos los centros de reuniones

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;
}

Quiero exportar estos datos a JSON, y cuando intento trabajar con la Lista de todas las reservas, el genérico se "pierde" y obtengo una excepción "El objeto no se puede convertir en Reserva"

Respuesta 1

La mejor solución simple es usar gson .

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

Actualmente estoy escribiendo un programa Java que recorre una carpeta de alrededor de 4000 archivos XML. Usando un bucle for, extrae el XML de cada archivo, lo asigna a un String 'xmlContent' y usa el ...

Necesito llamar a un procedimiento almacenado usando el controlador JTDS jdbc. Pero este procedimiento almacenado necesita un tipo de estructura como parámetro. El Jtds CallableStatement no tiene un método que establezca una estructura, así que he ...

Estoy usando el controlador web selenium con lenguaje Java. cuando hay dos botones en una ventana emergente, es decir, ok y cancelar, puede manejarse fácilmente con el controlador web utilizando el siguiente código: Alerta de alerta = controlador ...

Tengo una pregunta sobre los eventos enviados por el servidor, me gustaría implementar en una aplicación de arranque de primavera, pero la pregunta que quiero escuchar estos eventos de la otra aplicación de arranque de primavera o back-end ...