gpt4 book ai didi

java - 从ArrayList中获取数据

转载 作者:太空宇宙 更新时间:2023-11-04 06:14:48 25 4
gpt4 key购买 nike

我有返回对象列表的方法,我在从列表中获取数据时遇到问题,当我尝试获取数据时遇到空指针异常。

返回列表的方法:

public List <EstimationResivion> getEstimationRevision(double rev_id){

List<EstimationDetailRevision> estDetail=estDetailRev(rev_id);
List<EstimationPanelRev> estPanelrev=estPanelRev(rev_id);
List<EstimationPannelDetailRevision> estimationpaneldetailrev=estPanelDetailRev(rev_id);
List<EstimationResivion> estRev=estRevision(rev_id);

EstimationResivion ed= new EstimationResivion();
ed.setEstimationdetailRev(estDetail);
ed.setEstimationpanelRev(estPanelrev);
ed.setEstimationpaneldetailRev(estimationpaneldetailrev);

System.out.println("Size before: "+estRev.size());
estRev.add(ed);

return estRev;
}

estDetailRev代码:

private List<EstimationDetailRevision> estDetailRev(double d){

return getJdbcTemplate().query("SELECT * FROM estimation_detail_rev WHERE rev_id=?", new Object[] {d }, new EstimationDetailRevRowMapper());
}

estRevision代码

private List<EstimationResivion> estRevision(double d){

return getJdbcTemplate().query("SELECT * FROM estimation WHERE est_revision=?", new Object[] {d }, new EstimationRevRowMapper());

}

estRevision将返回 List<EstimationResivion> 的列表我将其存储在estRev中.

我打电话的地方的代码getEstimationRevision并尝试从列表中获取数据

public void getRevision(){
double d=0;
List<EstimationResivion> est=estimationdao.getEstimationRevision(d);

for(EstimationResivion er:est){
System.out.println(er.getEstContactPerson());
System.out.println(er.getEstCustomer());
System.out.println(er.getRevId());
// epd=er.getEstimationpaneldetailRev();

List<EstimationDetailRevision> edr=er.getEstimationdetailRev();
for(EstimationDetailRevision estimaitonDetail:edr){

estimaitonDetail.getCompCategory();
estimaitonDetail.getCompMake();
}

}

当我调用 er.getEstimationdetailRev(); 时,我得到空值如果我指定索引,我可以获取如下数据:

List<EstimationDetailRevision>  edr=est.get(64).getEstimationdetailRev();

我的问题是如何在不指定索引的情况下获取数据?

最佳答案

您的元素之一是null(不是值)。让我们看看是哪一个,

// for(EstimationResivion er:est){
for (int index = 0; index < est.size(); index++) {
EstimationResivion er = est.get(index);
if (er == null) {
System.out.println("element at index " + index + " is null");
continue; // <-- move to the next index
}
// ...
List<EstimationDetailRevision> edr=er.getEstimationdetailRev();
if (edr == null) {
System.out.println("edr at index " + index + " is null");
continue; // <-- move to the next index
}

此外,您可以(并且应该)在代码上使用调试器

关于java - 从ArrayList中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28229477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com