java对象类型转换分为_java-如何将类对象转换为通用对象类型?
我正在研究一種使用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 listCurrentRecords(int objectType)
{
// PRODUCT
if ( objectType == 1 ){
}
//CUSTOMER
else if ( objectType == 2 ){
}
// SALESORDER
else if ( objectType == 3 ){
}
return null;
// return new ArrayList();
}
假設objectType == 2,那么它將需要使用getMyCustomer方法(從Product和SalesOrder同樣使用它們將使用各自的方法)從Customer表中獲取一些數據,如下所示,
public static List getMyCustomer(){
return jdbc.query("select * from Customer", new RowMapper() {
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>轉換列出< Object>.我提供了以下偽代碼,
// customer
else if ( objectType == 2 ){
List myCustomer = getMyCustomer();
// how to convert ***myCustomer*** to List ?
}
感謝您提供一些有關如何用Java正確編寫的幫助.
解決方法:
由于需要對象類型(記住泛型是編譯時類型檢查功能),因此可以使用addAll或采用第二個List的構造函數.喜歡
List myCustomer = new ArrayList<>(getMyCustomer());
要么
List al = new ArrayList<>();
// ...
al.addAll(getMyCustomer());
標簽:generics,jdbc,java,mysql,object
來源: https://codeday.me/bug/20191027/1946580.html
總結
以上是生活随笔為你收集整理的java对象类型转换分为_java-如何将类对象转换为通用对象类型?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA解决生产消费者_Java常用三种
- 下一篇: 怎样养成易瘦体质