获取列表元素的值

时间:2015-04-10 04:41:59

标签: java java-ee

我需要访问不同类中列表中元素的值。这是怎么回事:

在类DocumentManager.java中:

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

我无法做的是以类似的方式分配versionLabel的值。我认为这是因为“version”是“form”中的List和“wsForm”中的String。我想要以下内容:

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

“label”具有String值。我想在“wsForm”中将它分配给versionLabel。

提前谢谢。

3 个答案:

答案 0 :(得分:1)

您正在使用List,因此您必须致电

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

您正在做的是为列表上的列表调用不存在的方法。通过这种方式,您可以访问列表中的某个版本,并且可以在此Version对象上调用getLabel方法。

然而,真正的问题是,你需要什么指数?或者,换句话说,versions列表中是否有多个对象?因为如果没有,你在这里为自己过度复杂。

答案 1 :(得分: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中设置哪个Version对象的标签,在示例中它只是第一个对象的设置。并确保form.getVersions()不为空,也不为空。


最后一个元素

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

答案 2 :(得分:0)

根据您的评论,每当有人修改您的表单时,versions会增加,如果您想获得最新编辑的版本标签,则可以执行以下操作。

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

当您向列表添加版本时,最新版本是列表中的最新版本,因此请从该版本获取标签