Java-如何返回到父方法?
我正在研究一种方法,如果密码匹配,应该让客人入住房间。该方法还应返回该房间Java-如何返回到父方法?,java,arraylist,Java,Arraylist,我正在研究一种方法,如果密码匹配,应该让客人入住房间。该方法还应返回该房间 public Room checkIn(String password, String guestName) { assert (guestName != null); if (this.password.testWord(password) && roomList.stream().allMatch(r -> r.getGuest().getName() != gu
public Room checkIn(String password, String guestName) {
assert (guestName != null);
if (this.password.testWord(password) && roomList.stream().allMatch(r -> r.getGuest().getName() != guestName)) {
roomList.forEach(r -> {
if (r.getGuest() == null) {
new Guest(guestName).checkin(r);
return r;
}
});
}
return null;
}
Eclipse给出了一个关于在forEach()
方法中返回的错误,因为forEach()
不应该返回任何内容。我正试图让checkIn()
方法返回房间。我有什么办法可以做到这一点吗 使用Stream.findFirst()
获取第一个匹配元素:
Optional<Room> r = roomList.stream().filter(r -> r.getGuest() == null).findFirst();
if (r.isPresent()) {
new Guest(guestName).checkin(r.get());
return r.get();
}
Optional r=roomList.stream().filter(r->r.getGuest()==null.findFirst();
if(r.isPresent()){
新来宾(guestName).checkin(r.get());
返回r.get();
}
使用Stream.findFirst()
获取第一个匹配元素:
Optional<Room> r = roomList.stream().filter(r -> r.getGuest() == null).findFirst();
if (r.isPresent()) {
new Guest(guestName).checkin(r.get());
return r.get();
}
Optional r=roomList.stream().filter(r->r.getGuest()==null.findFirst();
if(r.isPresent()){
新来宾(guestName).checkin(r.get());
返回r.get();
}
使用for(Room r:roomList)
进行迭代。Room r=roomList.stream().filter(r->r.getGuest()==null)。findFirst()
@AndyTurner:findFirst是否会返回一个可选的
?@Henrik yep!我甚至没有打电话的借口;)使用for(Room r:roomList)
进行迭代。Room r=roomList.stream().filter(r->r.getGuest()==null.findFirst()
@AndyTurner:findFirst是否会返回一个可选的
?@Henrik yep!我甚至没有打电话的借口;)if结构可以更改为r.map(room->newguest(guestName).checkin(room)).orElse(null)
。不过,不确定它是否更可读。if结构可以更改为r.map(room->newguest(guestName)。checkin(room)).orElse(null)
。不过,不确定它是否更具可读性。