java - 如何正确地将 List 转换为我的对象类型的 ArrayList?

标签 java arraylist casting jdbctemplate

我有一个JdbcTemplate使用 queryForList 从数据库表中获取所有记录的查询。我有一个在 ArrayList 上运行的类(class)主要是希望将列表转换为 ArrayList<Customer> 。在调试器中,它可以很好地检索记录,但我无法弄清楚如何强制转换 ObjectCustomer并创建一个 ArrayList类型 Customer 。这是我的代码:

public static ArrayList<Customer> getCustomers(){
        String query = "SELECT customerId,lastName,firstName,email,address,city,state,zip FROM " +
                "Customers";
        List customerList = jdbcTemplate.queryForList(query);
        ArrayList<Customer> customerArrayList = new ArrayList(customerList);
        return customerArrayList;
    }

最佳答案

有什么原因吗List是裸体而不是 List<Customer> ?我相信这就是您需要解决的全部问题。

注意ArrayList支持构造函数

ArrayList(Collection<? extends E> c)

您正在尝试使用哪个。

来自Spring's JDBC Template documentation看来您需要“提示”返回类型:

<T> List<T> queryForList(String sql, Class<T> elementType) 

即调用

List<Customer> customerList = jdbcTemplate.queryForList(query, Customer.class);

关于java - 如何正确地将 List 转换为我的对象类型的 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35516208/

相关文章:

r - 如何在 r 中传播或转换多个值

c# - DateTime[] 和 Object[] 问题

c - 在 C 中分配指针时的显式转换

java - 如何使用 Spring Security 保护 Vaadin 流应用程序

java - 尝试使用 Maps API 查找附近地点时出现 FileNotFoundException

c# - 无法将类型为 'System.DBNull' 的对象转换为类型 'System.String'。错误

java - 我可以将不同的 Canvas 笔划添加到数组中吗?

java - 在插入 ArrayList 之前检查 ArrayList 内的对象是否具有相同的 ID 值

java - JNA中GlobalAlloc和GlobalLock的返回值有什么区别

java - getBytes() 适用于 ResultSet 但不适用于 CachedRowSet