Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用oop概念传递具有不同数据类型的ArrayList对象?_Java_Oop_Arraylist - Fatal编程技术网

Java 如何使用oop概念传递具有不同数据类型的ArrayList对象?

Java 如何使用oop概念传递具有不同数据类型的ArrayList对象?,java,oop,arraylist,Java,Oop,Arraylist,我正在尝试使用ArrayList将值传递给数据库。 然后我得到了一个异常java.lang.ClassCastException:java.lang.String不能转换为model.OrderModel 以下是我如何通过用户获取值 有人能帮我检查一下吗 DefaultTableModel dtm = (DefaultTableModel) tblOrder.getModel(); int numRow = dtm.getRowCount(); int numCol = dtm.

我正在尝试使用ArrayList将值传递给数据库。 然后我得到了一个异常
java.lang.ClassCastException:java.lang.String不能转换为model.OrderModel

以下是我如何通过用户获取值 有人能帮我检查一下吗

DefaultTableModel dtm = (DefaultTableModel) tblOrder.getModel();
    int numRow = dtm.getRowCount();
    int numCol = dtm.getColumnCount();
  try {

    ArrayList<OrderModel> list = new ArrayList<OrderModel>();    
    for(int l = 0;l<numRow;l++){
        for(int j=0;j<numCol;j++){
          list.add((OrderModel) tblOrder.getValueAt(l, j));//this line may be the problem as i think
        }
    } 

    Order or = new Order();
    or.passingValuesToDB(list);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
(OrderModel)tblOrder.getValueAt(l,j)
是问题所在

ValueAt(l,j)
返回字符串(表列数据类型)。不能将
String
强制转换为
OrderModel
对象。它们是完全不同的对象。您应该使用行-列值创建一个
OrderModel
对象。您可以使用setter或直接传递给构造函数。然后您可以将其添加到
ArrayList列表中

ArrayList<OrderModel> list = new ArrayList<OrderModel>();

for (int l = 0; l < numRow; l++) {

            int orderid = Integer.parseInt(tblOrder.getValueAt(l, 0).toString());
            String customername = tblOrder.getValueAt(l, 1).toString();
            String item = tblOrder.getValueAt(l, 2).toString();
            double qty = Double.parseDouble(tblOrder.getValueAt(l, 3).toString());
            double amount = Double.parseDouble(tblOrder.getValueAt(l, 4).toString());
            double total = Double.parseDouble(tblOrder.getValueAt(l, 5).toString());
            // OrderModel object
            OrderModel ormod1 = new (orderid, customername, item, bla..bla..);
            //then add OrderModel to the list
            list.add(ormod1);

}
ArrayList list=new ArrayList();
对于(int l=0;l
如果您发布该类和stacktrace,您的tblOrder中有什么内容将很有帮助。您确定tblOrder包含
OrderModel
实例吗?tblOrder仅包含(itemName、Qty、price、amount)
public class OrderModel {
     private int orderid;
     private String customername;
     private String item;
     private double qty;
     private double amount;
     private double total;

      public OrderModel(int orderid,String customername,String item,Double qty,Double amount,Double total){
        this.orderid = orderid;
        this.customername = customername;
        this.item = item;
        this.qty = qty;
        this.amount=amount;
        this.total=total;
    }

    public OrderModel() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    public int getOrderid() {
        return orderid;
    }
    public void setOrderid(int orderid) {
        this.orderid = orderid;
    }
    public String getCustomername() {
        return customername;
    }
    public void setCustomername(String customername) {
        this.customername = customername;
    }
    public String getItem() {
        return item;
    }
    public void setItem(String item) {
        this.item = item;
    }
    public double getQty() {
        return qty;
    }
    public void setQty(double qty) {
        this.qty = qty;
    }
    public double getAmount() {
        return amount;
    }
    public void setAmount(double amount) {
        this.amount = amount;
    }
    public double getTotal() {
        return total;
    }
    public void setTotal(double total) {
        this.total = total;
    }


}
ArrayList<OrderModel> list = new ArrayList<OrderModel>();

for (int l = 0; l < numRow; l++) {

            int orderid = Integer.parseInt(tblOrder.getValueAt(l, 0).toString());
            String customername = tblOrder.getValueAt(l, 1).toString();
            String item = tblOrder.getValueAt(l, 2).toString();
            double qty = Double.parseDouble(tblOrder.getValueAt(l, 3).toString());
            double amount = Double.parseDouble(tblOrder.getValueAt(l, 4).toString());
            double total = Double.parseDouble(tblOrder.getValueAt(l, 5).toString());
            // OrderModel object
            OrderModel ormod1 = new (orderid, customername, item, bla..bla..);
            //then add OrderModel to the list
            list.add(ormod1);

}