2014-09-10 3 views
0

У меня есть класс, который имеет список событий.Java: преобразовать список объектов в нечто другое

public class EventScheduler{ 

    List<Event> event 

} 

public class Event{ 

    private String text; 
    private int timestamp; 

} 

У меня есть EventView, он принимает событие как конструктор и имеет геттеры и нет сеттеров.

В основном это позволяет подмножество переменных, установленных в случае просмотра, в то же время действуя аналогично событию.

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

, как ответил ниже, вы должны создать экземпляр объекта с помощью «новый». – akshayb

+0

Вы пишете for-loop итераторы над списком событий и создаете для каждого объекта EventView. С Java 8 существуют альтернативные синтаксисы, чем for-loop, чтобы сделать то же самое. –

ответ

4

С Java 8:

List<EventView> views = events.stream() 
           .map(EventView::new) 
           .collect(Collectors.toList()); 
3

перебирать каждый Event и создать EventView для него, а затем передать его в список:

List<EventView> eventViewList = new ArrayList<EventView>(); 
if(eventList != null) { 
    for(Event event : eventList) { 
     EventView eventView = new EventView(event); 
     eventViewList.add(eventView); 
    } 
} 
Смежные вопросы