如何使用boja类将一个列表添加到另一个列表中

时间:2016-03-31 12:23:47

标签: java spring arraylist

我必须单独运行两个查询并添加单个列表,如下面的代码,

    List<BojaClass> results1 = new ArrayList<>();
    List<BojaClass> results2 = new ArrayList<>();
    String sql1 = "my query 1";
    String sql2 = "my query 2";
    results1 = jdbcTemplate.query(sql1, new Object[]{1,2}, new BeanPropertyRowMapper<BojaClass>(BojaClass.class));
    results2 = jdbcTemplate.query(sql2, new Object[]{1,2}, new BeanPropertyRowMapper<BojaClass>(BojaClass.class));
    results1.add((BojaClass) results2);

但是我得到异常“ java.lang.ClassCastException:java.util.ArrayList无法强制转换为com.myclass.BojaClass ”并且results2值不会添加到results1。

我在哪里做错了?

2 个答案:

答案 0 :(得分:2)

您正在使用add接口的List方法,该方法仅向列表中添加单个元素。请改用addAll方法,这将添加另一个列表。

  

布尔值java.util.List.add(E e)

     

将指定的元素追加到此列表的末尾(可选   操作)。

     

boolean java.util.List.addAll(Collection c)

     

将指定集合中的所有元素追加到此列表的末尾,在   命令它们由指定的集合的迭代器返回   (可选操作)。如果,则此操作的行为未定义   操作进入时修改指定的集合   进展。 (请注意,如果指定的集合是,则会发生这种情况   这个清单,这是非空的。)

答案 1 :(得分:0)

您的演员阵容中存在错误:

results1.add((BojaClass) results2);

上面应改为:

results1.add((List<BojaClass>) results2);

希望这可以解决您的问题