Java ArrayList标准;包括「;这种方法似乎不起作用

Java ArrayList标准;包括「;这种方法似乎不起作用,arraylist,contains,Arraylist,Contains,我正在用Java编写一个程序。 我有一些看似非常简单的代码,与一个对话框有关,用户可以在该对话框中将颜色添加到戳记的颜色属性中 有问题的部分是在用户单击两个按钮之一时执行的代码:取消或添加。我只是想通过使用ArrayList的“contains”方法检查与戳相关联的颜色的ArrayList是否包含它来检查戳是否已经拥有用户试图添加的颜色。但是当颜色已经存在时要执行的代码永远不会执行。当我添加一些调试代码来打印值时,它可以工作,但包含的内容永远不会工作。有什么想法吗 public void act

我正在用Java编写一个程序。 我有一些看似非常简单的代码,与一个对话框有关,用户可以在该对话框中将颜色添加到戳记的颜色属性中

有问题的部分是在用户单击两个按钮之一时执行的代码:取消或添加。我只是想通过使用ArrayList的“contains”方法检查与戳相关联的颜色的ArrayList是否包含它来检查戳是否已经拥有用户试图添加的颜色。但是当颜色已经存在时要执行的代码永远不会执行。当我添加一些调试代码来打印值时,它可以工作,但包含的内容永远不会工作。有什么想法吗

public void actionPerformed(ActionEvent e)
{
    if ( e.getSource() == btnAddColor )
        {//WE HAVE CLICKED btnAddColor
        if ( table.getSelectedRowCount() != 0 ) //THERE IS A CHOSEN COLOR IN THE JTABLE
            {
                String selectedColor=(table.getValueAt(table.getSelectedRow(), table.getSelectedColumn())).toString();
                //FIRST WE HAVE TO CHECK THAT THE COLOR IS NOT ALREADY EXISTING FOR THIS STAMP
                if (Share.timbreNow.getColorList().contains( colorDao.findByName(selectedColor).get(0)))
                    {//WE DO NOT TAKE THE ADD ACTION INTO ACCOUNT BECAUSE IT IS AN ALREADY EXISTING COLOR
                        notificationPopup.setContent("The stamp already has this color !");
                        NotificationManager.showNotification(notificationPopup);
                    }

                else //WE CAN ADD THE COLOR
                    {
                        Timer timer = new Timer(1000, new ActionListener() //Set a timer
                            {
                                public void actionPerformed(ActionEvent e)
                                    {
                                        DialogAddColor.this.setVisible(false);
                                        DialogAddColor.this.dispose();
                                    }
                            });
                            timer.start();//Start the timer
                            notificationPopup.setContent("Adding the color \"" + selectedColor  + "\"");
                            NotificationManager.showNotification(notificationPopup);
                            Share.chosenColor = colorDao.findByName(selectedColor).get(0);  
                    }
            }

        else //NO CHOSEN COLOR
            {
                notificationPopup.setContent("No chosen color !");
                NotificationManager.showNotification(notificationPopup);
            }
    }

   else if ( e.getSource() == btnCancel )
    {//WE HAVE CLICKED btnCancel : LEAVE THE DIALOG WITHOUT DOING ANYTHING
        this.dispose();
    }
}//END OF METHOD

验证您使用的任何类型的对象是否正确实现了
equals
方法。

我的自定义对象不会覆盖“equals”方法。如果是的话,基类的“equals”方法不应该工作吗?基类实现检查它们是否是同一个对象。如果你有可能拥有两个等价的对象,你需要自己实现。如果这能解决你的问题,请记住向上投票/接受。我会的。在执行此操作之前,请等待第二个意见。好的,您的意思是基本实现只检查引用是否相等,而不检查包含的字段。我说得对吗?