2014-10-24 2 views
0

Вот вопрос. У меня есть класс, который имеет коллекцию подкласса.Метод вызова коллекции на Java

public class classOne{ 
    private Collection<classTwo> ...; 
} 

Теперь я хочу, чтобы сохранить значение из второго элемента в качестве объекта

private ComboBoxViewerCellEditor cellEditor = ComboBoxViewerCellEditor((Composite) getViewer().getControl(),SWT.READ_ONLY); 
classOne one = (classOne) element; 
Collection<classTwo> contactList = one.getClassTwo(); 
celleditor.setInput(contactList.getName()); 

Что-то вроде этого, но последняя строка кода некорректен, так как это не работает.

Так, чтобы подвести итог, как я могу получить поглотитель из всех экземпляров второго класса, хранящихся в виде списка объектов

+0

в вашем классе один, просто введите метод getter, как public Collection getAllClassTwo() {return classTwoList;} и ​​в вашем классе вызывающего абонента просто как one.getAllClassTwo(); – SMA

+0

У меня есть то, что возвращает коллекцию объекта. Но мне нужно значение от каждого объекта в списке. – Praveen

+0

поэтому вместо возврата Collection as is, возвратите новый ArrayList (classTwoList); или лучше определить тип своей коллекции как списка, а не коллекции или на стороне клиента, перевести ее в список, используя выше. – SMA

ответ

1

Вам нужен цикл:

List<String> names = new ArrayList<>(); 
for (ClassTwo c2 : contactList) { 
    names.add(c2.getName()); 
} 

или, в Java 8:

List<String> names = contactList.stream() 
           .map(ClassTwo::getName) 
           .collect(Collectors.toList()); 
+0

yup, который сработал – Praveen

Смежные вопросы