类型ArrayList <string>中的方法add(String)不适用于参数(Object)

时间:2015-04-30 00:14:46

标签: java string arraylist jlist

我正在运行以下代码:

    public ArrayList<String> equipAvail;
        {
        equButton2 = new JButton();
        equButton2.setText("Apply");
        equButton2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                //read the contents of equlist2 
                for(int i=0;i<equList2.getModel().getSize();i++){
                    //fill equipAvail ArrayList with the contents of equlist2 
                    //System.out.println(equList2.getModel().getElementAt(i));
                    //System.out.println(equList2.getModel().getElementAt(i) instanceof String);
                    equipAvail.add(equList2.getModel().getElementAt(i));
                    //pass equipAvail to the user's EquipmentAvailable property
                    user.setEquipmentAvailable(equipAvail);
                }
            }
        });
    }

如果我注释掉行equipAvail.add(equList2.getModel().getElementAt(i));,并运行当前注释掉的行//System.out.println(equList2.getModel().getElementAt(i));,它会将选择打印到控制台。 如果我运行第//System.out.println(equList2.getModel().getElementAt(i) instanceof String);行,则会为填充到equList2的对象报告true。

然而不知何故,当我尝试如图所示运行它时,它甚至都不会编译。给出错误“ArrayList类型中的方法add(String)不适用于参数(Object)”。如果我在equipAvail行的末尾使用.toString(),它将编译,但是当我单击GUI中的按钮时,会给我相同的错误。

我需要equipAvail成为一个ArrayList,并使用equList2中显示的所有字符串进行填充。

为什么我不能使用equilAvail.add将我知道的这些对象添加到ArrayList中?

如何使用equList2中的条目填充equipAvail?

谢谢!

对于上下文,注意equList2就像这样开始生活可能会有所帮助:

    private JList getEquList2() {
    if(equList2 == null) {
        ListModel equList2Model = 
            new DefaultComboBoxModel(
                    new String[] {""});
        equList2 = new JList();
        equList2.setModel(equList2Model);
        equList2.setVisibleRowCount(4);
    }
    return equList2;
}

但随后更新为包含一些附加数据,使用equList2.setListData(equList1.getSelectedValues());命令绑定到“移动”按钮,该按钮将equList1条目的子集移动到equList2。

1 个答案:

答案 0 :(得分:2)

ListModel是泛型类型,但您将其用作原始类型。

也许ListModel<String> = new DefaultComboxBoxModel<String>(new String[] {""})