首页 > 解决方案 > 可迭代作为返回类型 - 可迭代本身还是子类?

问题描述

我无法理解 getAvailableRooms 方法。我有需要填写的方法,但我不太了解 Iterabl getAvailableRooms 方法。

public interface BookingManager {

public boolean isRoomAvailable(Integer room, LocalDate date);

public void addBooking(String guest, Integer room, LocalDate date);

public Iterabl<Integer> getAvailableRooms(LocalDate date);
}

Iterable 如何成为返回类型以及如何使用它?是否假设返回一个 Iterable 对象或任何子类(如 List)?

标签: javaiterable

解决方案


它是一个接口。它可以返回实现该接口的任何类,并且您可以使用接口提供的方法使用响应(您必须强制转换它才能获取其他类提供的方法)。查找多态性以获取更多信息。

public class BookingManagerImpl implements BookingManager {
 // other methods
  @Override
  public Iterable<Integer> getAvailableRooms(LocalDate date) {
    List<Integer> rooms = new ArrayList<>();
    // add rooms as needed
    return rooms;
  }
}

推荐阅读