Java 泛型如何用于嵌套列表
我有一个会议中心类,每个会议中心包含1..n个会议室,每个房间有0..n个预订 我想遍历会议中心,因为每个人都创建一个包含所有保留的子列表,然后将该子列表添加到包含所有会议中心所有保留的列表中Java 泛型如何用于嵌套列表,java,Java,我有一个会议中心类,每个会议中心包含1..n个会议室,每个房间有0..n个预订 我想遍历会议中心,因为每个人都创建一个包含所有保留的子列表,然后将该子列表添加到包含所有会议中心所有保留的列表中 public List<ArrayList<Reservation>> findAllReservations() { List<ArrayList<Reservation>> allReservations = new ArrayList<&
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;
}
公共列表findAllReservations(){
List allReservations=new ArrayList();
for(MeetingCentre mc:this.getMeetingCentres()){
ArrayList currentMCReservations=新的ArrayList();
对于(会议室先生:mc.getMeetingRooms()){
如果(mr.getReservations().size()>0){
currentMCReservations.addAll(getReservations先生());
}
}
如果(currentMCReservations.size()>0){
添加(当前MCReservations);
}
}
返回所有预订;
}
我想将这些数据导出到JSON中,当我尝试使用allReservations列表时,会出现一个异常“Object cannot converted to Reservation”最好的简单解决方案是使用
您需要阵列列表吗
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);
}
公共字符串getAllReservationsJSON(){
List allReservations=new ArrayList();
for(MeetingCentre mc:this.getMeetingCentres()){
ArrayList currentMCReservations=新的ArrayList();
对于(会议室先生:mc.getMeetingRooms()){
如果(mr.getReservations().size()>0){
currentMCReservations.addAll(getReservations先生());
}
}
如果(currentMCReservations.size()>0){
allReservations.addAll(当前MCReservations);
}
}
Gson Gson=新的Gson();
返回gson.toJson(所有预订);
}
反序列化时,必须指定反序列化程序正在检索的对象类型。我不确定您现在正在使用什么,但我认为它可能只是默认为键、值对a.k.a.映射。您正试图将其转换为预订,这当然是无法做到的。我想我们这里缺少了一些完整回答这个问题的代码。您使用哪个库导出到Json?我猜您需要查找类型擦除:
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);
}