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

标签 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)”。如果我在 equalAvail 行末尾使用 .toString() ,它将编译,但当我单击 GUI 中的按钮时,会出现相同的错误。

我需要将 equipAvail 设为 ArrayList 并填充 equList2 中出现的所有字符串。

为什么我不能使用 equalAvail.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。

最佳答案

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

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

关于java - ArrayList<String> 类型中的方法 add(String) 不适用于参数 (Object),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29956835/

相关文章:

java - 一对一单向 hibernate 映射在创建表时不创建外键

Java统计字符串出现次数并逆序排序

c++ - boost::algorithm::join 的一个很好的例子

java - 如何验证HashMap中的值是否存在

java - 覆盖/禁用 super 接口(interface)方法

java - JNLP 不在 Java 1.8 客户端上创建桌面快捷方式

java - Elasticsearch Java API - 构建查询

java - 提取字符串——如果不是正则表达式,那又是什么?

java - 从ArrayList中选择某些数据

java - 如何从 Java 中的 String 中删除重复的单词?