错误:java.util.ArrayList无法强制转换为java.lang.String

时间:2017-03-29 17:59:50

标签: java mysql sql eclipse interface

当我正在运行我的行动时,我面临错误: “java.util.ArrayList不能转换为java.lang.String”

这是我的代码:

 textField_1 = new JTextField();
       textField_1.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
           Object selected = list_1.getSelectedValue();
            Connection conn = null;
            PreparedStatement stmt = null;
            String a =null;
         try{

   conn=DriverManager.getConnection("jdbc:mysql://localhost/flyer","root","000");
   String query= " INSERT INTO flyer_item (discount)  SELECT price * ? FROM `item` WHERE item_name = `?` ";
   Statement st= conn.createStatement();

   java.sql.PreparedStatement ps = conn.prepareStatement(query);
                        ps.setString(1,a);
                        ps.setString(2,(String) selected);
                        ps.executeUpdate();
                        st.executeUpdate(query);


                    } catch (SQLException se){
                        System.out.println(se.getMessage());

                    } }} );

请帮忙吗?

2 个答案:

答案 0 :(得分:0)

此处Selected是一个数组列表,您尝试将其转换为字符串,这是不可能的:

ps.setString(2,(String) selected);

你应该做什么?

ps.setString(2, selected.tostring());

答案 1 :(得分:0)

你确定这条线吗?

       Object selected = list_1.getSelectedValue();

在投射前确保选中是一个字符串。您可以使用 instanceof 运算符来检查对象类型。