我需要访问不同类中列表中元素的值。这是怎么回事:
在类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。
提前谢谢。
答案 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());
当您向列表添加版本时,最新版本是列表中的最新版本,因此请从该版本获取标签