這兩種Java方法非常相似,但是我不確定如何進(jìn)行代碼重用。我嘗試創(chuàng)建一個(gè)通用對象,<T>但由于構(gòu)造函數(shù)而被禁止。我可以在這里使用泛型嗎?還是應(yīng)該Event和Hotel有父母?我不確定是否可以在此處使用接口。private List<Event> extractEvents(List<String> eventList) { return eventList.stream() .map(eventName -> new Event(eventName)) .collect(Collectors.toList());}private List<Hotel> extractHotels(List<String> hotelList) { return hotelList.stream() .map(hotelName -> new Hotel(hotelName)) .collect(Collectors.toList());}
1 回答

慕容708150
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以分別傳遞映射器:
private <T> List<T> extract(List<String> list, Function<String, T> mapper) {
return list.stream()
.map(mapper)
.collect(Collectors.toList());
}
List<Event> r1 = extract(eventList, Event::new);
List<Hotel> r2 = extract(hotelList, Hotel::new);
添加回答
舉報(bào)
0/150
提交
取消