这两个Java方法非常相似,但我不确定如何进行代码重用.我尝试创建一个通用对象,<T>但由于构造函数,它是不允许的.我可以在这里使用泛型吗?还是应该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());
}
Run Code Online (Sandbox Code Playgroud)
Jor*_*nee 10
您可以单独传递映射器:
private <T> List<T> extract(List<String> list, Function<String, T> mapper) {
return list.stream()
.map(mapper)
.collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)
List<Event> r1 = extract(eventList, Event::new);
List<Hotel> r2 = extract(hotelList, Hotel::new);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |