问题

我创建了两个类,一个驱动程序和一个GUI帧类.在Driver类中,我放置了用户对象的arrayList.但是当从GUI帧类调用方法时,返回的值为0.

我已经尝试使用每个循环隐式比较每个对象.

这是我用来将临时用户的对象与现有用户进行比较的方法.

 public boolean confirm(boolean loggedIn, int tempStudentNo, int tempPin) {

    //Creation of temporary object for comparison with existing one
    DriverMain temp = new DriverMain(tempStudentNo, tempPin);

    if (getCreation().contains(temp)) {
        System.out.println("user pass");
        setLoggedIn(true);
    } 

    else {
        System.out.println("user fail");
    }
    return loggedIn;

} 
 

我希望用户传递.但结果总是“用户失败”. 任何帮助将不胜感激:)

  最佳答案

这个答案基于您对评论的答复:“您的DriverMain类是否覆盖equals方法?”

为了使用(Array)List,HashTable,HashSet或HashMap等,您需要覆盖DriverMain类中的“几个”方法。 对于 List、Set 等 .. 和其他一些 Collection Types 或 Map/HashTable 来评估对象是否是其内容的成员,您需要提供一种方法来比较传递给它的对象和它目前持有的对象。

清单
2001年12月31日终了的两年期收入和支出及准备金和基金结余变动报表 contains(Object o) 方法使用 Object's equals(Object o) 方法将 Object o 与 Object x(列表集合的成员)进行比较。

关于这方面的更多信息,请访问以下链接: https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections/interfaces/list.html

设定
2001年12月31日终了的两年期收入和支出及准备金和基金结余变动报表 contains(Object o) 方法使用 Object 的 hashCode()equals(Object o) 方法将 Object o 与 Object x (Set Collection的成员)进行比较。

关于这方面的更多信息请访问以下链接: https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections/interfaces/set.html

地图
2001年12月31日终了的两年期收入和支出及准备金和基金结余变动报表 containsKey(Object o)方法使用对象的hashCode()equals(Object o)方法将对象o与任何对象x(Map Interface的成员)进行比较。

关于这方面的更多信息请访问以下链接: https://docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections/interfaces/map.html

重要说明 有更多的方法来处理这种情况,所有这些都取决于它的实现.例如:TreeSetTreeMap不使用hashCode()方法.

  相同标签的其他问题

javaequals