为了账号安全,请及时绑定邮箱和手机立即绑定

将泛型用于类似方法

将泛型用于类似方法

梵蒂冈之花 2021-05-17 17:08:37
这两种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());}
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

您可以分别传递映射器:


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);


查看完整回答
反对 回复 2021-05-26
  • 1 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信