Java 将对象添加到列表会覆盖某些结果

Java 将对象添加到列表会覆盖某些结果,java,list,overwrite,Java,List,Overwrite,我将对象添加到列表中,但存在覆盖问题。如何解决此问题?我在主方法的transactionIdList中发送了3个值。 这三个值发送到下面的方法,我想添加所有结果返回。但是,只有两个结果返回bsList,它们处于(basvuru!=null&&!basvuru.isEmpty())状态 List<ApplicationResult> bsList = new ArrayList(); Application bsDB = new Application();

我将对象添加到列表中,但存在覆盖问题。如何解决此问题?我在主方法的transactionIdList中发送了3个值。 这三个值发送到下面的方法,我想添加所有结果返回。但是,只有两个结果返回bsList,它们处于
(basvuru!=null&&!basvuru.isEmpty())
状态

     List<ApplicationResult> bsList = new ArrayList();
     Application bsDB = new Application();

     for (int i = 0; i < transactionIdList.size(); i++) {
        List basvuru = session.createQuery("from Application as bsvr where bsvr.transactionId = :var1").setParameter("var1", transactionIdList.get(i)).list();
        if (basvuru == null) {
           ApplicationResult bss = new ApplicationResult();
           bss.setTransactionId(transactionIdList.get(i));
           bss.setBasvuruDurum("no value");
           bsList.add(bss);
        } else if (basvuru != null && !basvuru.isEmpty()){
           ApplicationResult bs = new ApplicationResult();
           bsDB = (Application) basvuru.get(0);
           bs.setTransactionId(bsDB.getTransactionId());
           bs.setBasvuruDurum(bsDB.getDurum());
           bsList.add(bs); 
        }
    }
List bsList=new ArrayList();
应用程序bsDB=新应用程序();
对于(int i=0;i
唯一的解释是
session.createQuery()
返回一个
List
不是
null,而是空的。

唯一的解释是
session.createQuery()
返回一个
List
不是
null的
,但是是空的。

唯一的解释是
session.createQuery()
返回一个
List
不是
null,而是空的。

唯一的解释是
session.createQuery()
返回一个
List
不是
null
,但是是空的。

很可能basvruru在某个时候不是空的,而是一个空列表。在这种情况下,不会向bsList添加任何内容


您可能希望将if子句更新为
basvuru==null | | basvuru.isEmpty()
,然后使用and else。

很可能basvruru在某个时候不是null而是一个空列表。在这种情况下,不会向bsList添加任何内容


您可能希望将if子句更新为
basvuru==null | | basvuru.isEmpty()
,然后使用and else。

很可能basvruru在某个时候不是null而是一个空列表。在这种情况下,不会向bsList添加任何内容


您可能希望将if子句更新为
basvuru==null | | basvuru.isEmpty()
,然后使用and else。

很可能basvruru在某个时候不是null而是一个空列表。在这种情况下,不会向bsList添加任何内容


您可能想将if子句更新为
basvuru==null | | basvuru.isEmpty()
,只需使用and else。

列表中
实现值永远不会被覆盖。你一定还有别的问题。可能是
basvuru
List
中不是
null

,实现值永远不会被覆盖。你一定还有别的问题。可能是
basvuru
List
中不是
null

,实现值永远不会被覆盖。你一定还有别的问题。可能是
basvuru
List
中不是
null

,实现值永远不会被覆盖。你一定还有别的问题。可能是
basvuru
不是
null

,这意味着数据库中可能没有数据。你查过了吗?添加到列表中的对象永远不会被覆盖(除非您使用api而不是say add)。您在问题中的陈述没有意义。什么是压倒一切的问题?此外,您正在基于两种流动条件(如果和如果)将
bs
添加到
bsList
——如果您的
bs
值不满足这两种流动条件怎么办?您似乎并没有在这之后添加“bs”值—这不是在
bsList
中得到两个结果的原因吗?这意味着您可能在数据库中并没有数据。你查过了吗?添加到列表中的对象永远不会被覆盖(除非您使用api而不是say add)。您在问题中的陈述没有意义。什么是压倒一切的问题?此外,您正在基于两种流动条件(如果和如果)将
bs
添加到
bsList
——如果您的
bs
值不满足这两种流动条件怎么办?您似乎并没有在这之后添加“bs”值—这不是在
bsList
中得到两个结果的原因吗?这意味着您可能在数据库中并没有数据。你查过了吗?添加到列表中的对象永远不会被覆盖(除非您使用api而不是say add)。您在问题中的陈述没有意义。什么是压倒一切的问题?此外,您正在基于两种流动条件(如果和如果)将
bs
添加到
bsList
——如果您的
bs
值不满足这两种流动条件怎么办?您似乎并没有在这之后添加“bs”值—这不是在
bsList
中得到两个结果的原因吗?这意味着您可能在数据库中并没有数据。你查过了吗?添加到列表中的对象永远不会被覆盖(除非您使用api而不是say add)。您在问题中的陈述没有意义。什么是压倒一切的问题?此外,您正在基于两种流动条件(如果和如果)将
bs
添加到
bsList
——如果您的
bs
值不满足这两种流动条件怎么办?您似乎没有在之后添加“bs”值-这不是在
bsList
中得到两个结果的原因吗?我使用了else,但是它在bsDB=(应用程序)basvuru.get(0)中给出了rangeCheck数组或类似的异常;在空列表上调用get(int)将始终引发ArrayIndexOutOfBounds异常。您的第二个代码块应该仅在列表不为null且也不为空的情况下运行