2015-04-10 6 views
0

Мне нужно получить доступ к значению элемента в списке в другом классе. Вот как это происходит:Получить значение элемента списка

В классе DocumentManager.java:

Domain.Form form = new Domain.Form(); 
    Services.Form wsForm = new Services.Form(); 

То, что я не был в состоянии сделать это, чтобы присвоить значение versionLabel аналогичным образом. Я думаю, это потому, что «версия» - это список в «форме» и «строка» в «wsForm». Я хотел бы что-то вроде следующего:

wsForm.setVersionLabel(form.getVersions().getLabel()); 

"label" имеет значение String. Я хочу назначить это versionLabel в «wsForm».

Заранее спасибо.

+0

Сколько объектов у вас в том, что 'versions' список в объекте формы? Это один или многие? – Arkantos

+0

wsForm.setVersionLabel (form.getVersions(). Get (0) .getLabel()); вы можете получить метку первой версии, как это – Nimesh

+0

@Arkantos По крайней мере один, и это продолжает увеличиваться по мере изменения форм. –

ответ

0

Поскольку form.getVersions() воля возвращает List<Version> так что вы не можете позвонить ниже код:

wsForm.setVersionLabel(form.getVersions().getLabel()); 

Если вы хотите, вы можете использовать следующие:

wsForm.setVersionLabel(form.getVersions().get(yourIndex).getLabel());// change index for object which you want 

Примечание: Вы должны убедиться, которые Ярлык объекта версии, который вы хотите установить в wsForm, В примере это просто настройка для первого объекта. И убедитесь, что form.getVersions() не является ни пустым, ни пустым.


Для последнего элемента

form.getVersions().get(form.getVersions().size()-1); 
+0

Спасибо за ответ. В списке будет хотя бы один элемент. Я знаю, что get (0) даст мне первый элемент. Что делать, если мне нужен последний элемент, и я не знаю, сколько элементов есть? –

+0

Подробнее см. Ответ –

1

Вы работаете со списком, и поэтому вы должны вызвать

wsForm.setVersionLabel(form.getVersions().get(/index here/).getLabel()); 

Что вы делаете вызов, не существующий метод для списков на список. Таким образом, вы можете перейти к определенной версии в списке, а в этом объекте Version вы можете вызвать метод getLabel.

Однако, настоящий вопрос здесь, какой индекс вам нужен? Или, иначе говоря, есть ли несколько объектов в списке versions? Потому что, если нет, вы здесь слишком себя чувствуете.

+0

Благодарим вас за ответ. В списке будет хотя бы один элемент. Я знаю, что get (0) даст мне первый элемент. Что делать, если мне нужен последний элемент, и я не знаю, сколько элементов есть? –

+0

Вы можете использовать метод size() для списков. 'wsForm.setVersionLabel (form.getVersions(). get (form.getVersions(). size() - 1) .getLabel());' Я думаю, что вам очень полезно проверить документацию Java на списках https://docs.oracle.com/javase/7/docs/api/java/util/List.html – Jyr

0

Основываясь на ваших комментариях, ваш versions увеличивается каждый раз, когда кто-то изменяет вашу форму, и если вы хотите получить метку новой редакции, вы можете сделать что-то вроде этого.

int recentIndex = form.getVersions().size()-1; 
wsForm.setVersionLabel(form.getVersions().get(recentIndex).getLabel()); 

Как вы добавляете версии в список, самая последняя версия является последней версией в списке, так что получить ярлык от этой версии

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