我有一个包含事件列表的类。
public class EventScheduler{
List<Event> event
}
public class Event{
private String text;
private int timestamp;
}
我有一个EventView,它需要一个Event作为构造函数,并且有getter而且没有setter。
它基本上允许查看事件中设置的变量子集,同时以与事件类似的方式运行。
public class EventView{
public EventView(Event event){
this.event = event;
}
public String getText(){
return event.getText();
}
//no timestamp getter as its not allowed for this view object.
}
因此,使用此设置,将List<Event>
转换为List<EventView>
的最快捷方式是什么?
或某种替代方案。
答案 0 :(得分:4)
使用Java 8:
List<EventView> views = events.stream()
.map(EventView::new)
.collect(Collectors.toList());
答案 1 :(得分:3)
迭代每个Event
并为其创建EventView
,然后将其传递给列表:
List<EventView> eventViewList = new ArrayList<EventView>();
if(eventList != null) {
for(Event event : eventList) {
EventView eventView = new EventView(event);
eventViewList.add(eventView);
}
}