首页 > 解决方案 > Java中的显示列表

问题描述

由于Javascript,我正在尝试插入我在列表中创建的对象以将它们显示在表格中。

但是问题是对象的元素是这样在列表中注册的(显示调试javascript):

  1. 列表异常:数组(18)
    • 0:“779”
    • 1:“2019/11/16”
    • 2:“测试3”
    • 3:“测试3”
    • 4:“测试3”
    • 5:“2020/01/01”
    • 6:“778”
    • 7:“2019/09/28”
    • 8:“测试2”
    • 9:“测试2”
    • 10:“测试2”

这是我创建 List 的地方:

final AnomalieJira returnData = new AnomalieJira();

    final List<SaisieAnomalieProjetVo> project1 = new ArrayList(Arrays.asList("777", "2019/01/01", "test", "test", "test", "2020/01/01"));

    final List<SaisieAnomalieProjetVo> project2 = new ArrayList(Arrays.asList("778", "2019/09/28", "test2", "test2", "test2", "2020/01/01"));

    final List<SaisieAnomalieProjetVo> project3 = new ArrayList(Arrays.asList("779", "2019/11/16", "test3", "test3", "test3", "2020/01/01"));

    final List<SaisieAnomalieProjetVo> projet = new ArrayList<SaisieAnomalieProjetVo>();
    projet.addAll(project3);
    projet.addAll(project2);
    projet.addAll(project1);

    //final List<SaisieAnomalieProjetVo> listAnomalies = jiraDao.getWorkIssueSP(id, datasource, jira);
    returnData.setListAnomalies(projet);
    //returnData.getListAnomalies().addAll(project2);

    returnData.setUrl(datasource.getUrl());
    returnData.setPsw(datasource.getPassword());
    returnData.setUser(datasource.getUsername());

            return returnData;

}

我的班级 AnomalieJira :

public class AnomalieJira {


/**
 * Liste des différents info travaux
 */
private List<SaisieAnomalieProjetVo> listAnomalies;

private String url;
private String psw;
private String user;
}

还有我的列表 SaisieAnomalieProjetVo :

public class SaisieAnomalieProjetVo extends AbstractAudited<Integer> {

private static final long serialVersionUID = 1L;

@NotNull
private int projet;

@NotNull
private Date date;

@NotNull
@NotEmpty
private String type;

@NotNull
@NotEmpty
private String reference;

private String description;

private Date dateRea;
}

我挣扎着得到这样的显示:

  1. 列表异常:数组(18)
    • 0:“779”、“2019/11/16”、“test3”、“test3”、“test3”、“2020/01/01”
    • 1:“778”、“2019/09/28”、“test2”、“test2”、“test2”、“2020/01/01”
    • 2:……

这个显示比第一个更有意义,但我无法获得这种格式。

标签: javalistobject

解决方案


当您使用 将元素添加到 ListArrays.asList时,它会创建作为输入参数传递的元素列表,而不是SaisieAnomalieProjetVo. 但是您需要SaisieAnomalieProjetVo在将其添加到列表之前创建对象。

首先将构造函数添加到SaisieAnomalieProjetVo如下:

public class SaisieAnomalieProjetVo extends AbstractAudited<Integer> {

private static final long serialVersionUID = 1L;

@NotNull
private int projet;

@NotNull
private Date date;

@NotNull
@NotEmpty
private String type;

@NotNull
@NotEmpty
private String reference;

private String description;

private Date dateRea;



public SaisieAnomalieProjetVo(final int project, final Date date, final Date dateRea, final String reference,
      final String description, final String type) {
    this.projet = project;
    this.date = date;
    this.dateRea = dateRea;
    this.reference = reference;
    this.description = description;
    this.type = type;
}
}

然后在添加到列表创建对象之前,SaisieAnomalieProjetVo如下所示(假设日期格式为"yyyy/MM/dd"

final SimpleDateFormat parser= new SimpleDateFormat("yyyy/MM/dd");

    final List<SaisieAnomalieProjetVo> project1 = new ArrayList(Arrays.asList(
        new SaisieAnomalieProjetVo(777, parser.parse("2019/01/01"), parser.parse("2020/01/01"), "test", "test", "test")));

推荐阅读