gpt4 book ai didi

java - 对类似方法使用泛型

转载 作者:搜寻专家 更新时间:2023-11-01 01:24:41 25 4
gpt4 key购买 nike

这两个 Java 方法非常相似,但我不确定如何进行代码重用。我尝试创建一个通用对象 <T>但由于构造函数,这是不允许的。我可以在这里使用泛型吗?或者应该EventHotel有 parent 吗?我不确定我是否可以在这里使用接口(interface)。

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

最佳答案

您可以单独传入映射器:

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

关于java - 对类似方法使用泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51350194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com