java - 如何将类对象转换为通用对象类型?

标签 java mysql object generics jdbc

我正在研究一种使用 NamedParameterJdbcTemplate 从 MySQL 数据库中获取一些数据的方法. listCurrentRecords应该返回 Customer 类型的对象列表, ProductSalesOrder来自数据库。 objectType是根据方法内部传递的参数定义的 (1 || 2 || 3) 并且它在类的前面定义为公共(public)变量。

public static final int TYPE_PRODUCT = 1;
public static final int TYPE_CUSTOMER = 2;
public static final int TYPE_SALESORDER = 3;

方法如下。

public static List<Object> listCurrentRecords(int objectType)
{

    // PRODUCT 
    if ( objectType == 1 ){

    }

    //CUSTOMER 
    else if ( objectType ==  2 ){

    }

    // SALESORDER
    else if ( objectType ==  3 ){

    }

    return null; 
    // return new ArrayList<Object>();
}

比如说,objectType == 2 , 然后它需要从 Customer 中获取一些数据使用 getMyCustomer 的表格方法(同样适用于 ProductSalesOrder ,他们将使用他们单独的方法)如下,

public static List<Customer> getMyCustomer(){

    return jdbc.query("select * from Customer", new RowMapper<Customer>() {

        public Customer mapRow(ResultSet rs, int rowNum) throws SQLException {

            Customer customer = new Customer();

            customer.setCustomerID(rs.getString("CustomerID"));
            customer.setName( rs.getString("Name"));
            customer.setAddress( rs.getNString("Address"));
            customer.setPhone1(rs.getNString("Phone 1"));
            customer.setPhone2(rs.getNString("Phone 2"));

            customer.setCreditLimit(rs.getDouble("Credit Limit"));
            customer.setCurrentCredit(rs.getDouble("Current Credit"));

            return customer;
        }
    });

else if ( objectType == 2 ){ }里面我想调用getMyCustomer方法并得到List<Customer>那里。但是,方法的返回类型 listCurrentRecordsList<Object> .如何从 List<Customer> 转换至 List<Object> .我提供的伪代码如下,

   // customer 
    else if ( objectType ==  2 ){

         List<Customer> myCustomer =  getMyCustomer();
         // how to convert ***myCustomer*** to List<Object> ?
    }

我很感激关于如何用 Java 正确编写它的一些帮助。

最佳答案

因为你想要 Object 类型(记住泛型是编译时类型检查功能),你可以使用 addAll 或采用第二个 List 的构造函数。喜欢

List<Object> myCustomer = new ArrayList<>(getMyCustomer());

List<Object> al = new ArrayList<>();
// ...
al.addAll(getMyCustomer());

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

相关文章:

java - 如何限制 Eclipse 中的搜索匹配以过滤掉评论中的结果?

java - 即使我指定了计数查询,也无法使用具有动态排序和/或分页的 native 查询

oracle - 处理 Oracle 中的客户特定对象

javascript - 如何从函数中获取选定的元素并将其作为另一个函数的参数传递

java - 为什么数组的元素为空?

java - 如何在运行时从文件夹或 JAR 加载类?

java - Scala 中的集合和 toArray

php - 获取列内容作为数组键

mysql - 如何按日期和 ID 删除 MySQL 表上的重复项?

python - 为什么传递表示对象的字符串而不是传递对象?