我创建了两个类,一个驱动程序和一个GUI框架类。在驱动程序类中,我放置了用户对象的arrayList。但是,当从GUI框架类调用方法时,返回的值为0。
我尝试过使用for每个循环来隐式比较每个对象。
这是我用来比较临时用户和现有用户的对象的方法。
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 Type或Map / HashTable评估你的对象是否是其内容的成员,你需要为其提供一种比较传递给它的对象和这些对象的方法。
列出 的contains(Object o)方法使用该对象的equals(Object o)方法,你的比较对象的o任何对象x(名单收集的成员)。
有关此的更多信息,请访问以下链接:https : //docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections /interfaces/list.html
设置 的contains(Object o)方法使用该对象的hashCode()和equals(Object o)方法,以你的比较对象的o任何对象x(设置集合的成员)。
有关此的更多信息,请访问以下链接:https : //docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections /interfaces/set.html
Map 该containsKey(Object o)方法使用Object的hashCode()和equals(Object o)方法将你的Object o与任何Object x(Map Interface的成员)进行比较。
有关此的更多信息,请访问以下链接:https : //docs.oracle.com/javase/tutorial/java/IandI/objectclass.html https://docs.oracle.com/javase/tutorial/collections /interfaces/map.html
重要说明 解决这种情况的方法更多,具体取决于其实现方式。例如:TreeSet并且TreeMap不使用该hashCode()方法。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。