我正在研究一种使用 NamedParameterJdbcTemplate
从 MySQL 数据库中获取一些数据的方法. listCurrentRecords
应该返回 Customer
类型的对象列表, Product
和 SalesOrder
来自数据库。 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
的表格方法(同样适用于 Product
和 SalesOrder
,他们将使用他们单独的方法)如下,
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>
那里。但是,方法的返回类型 listCurrentRecords
是List<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/