【发布时间】:2016-04-18 18:56:40
【问题描述】:
现在我已经被这个问题困扰了一段时间,想知道是否有人可以提供帮助。我已经制作了一个 Java GUI(为最后一年的大学生提供的模块选择器),但我一点也做不了。
背景:添加新模块和课程应该很容易,所以我尽量避免硬编码。现在我要做的就是让程序根据课程导入某些模块。这是非常微不足道的,我可以让它以一种肮脏的方式工作,但不是我想要的方式。
if(course.getCourseName() == "Computer Science") {
select.setModules(courses[0].getModulesOnCourse());
} else if(course.getCourseName() == "Software Engineering") {
select.setModules(courses[1].getModulesOnCourse());
}
现在这种方式可行,但它是硬编码级别 1000。我希望它的工作方式是以下两种:
courses.forEach(c -> {if(c.equals(course)){select.setModules(c.getModulesOnCourse())}});
或
for(Course c : courses) {
if(c.equals(course)) {select.setModules(c.getModulesOnCourse());}
}
现在理论上它们都应该可以完美地工作,但两者都不是。我只是想知道是否有人可以帮助我理解原因并提供解决方案。为方便起见,我将附上下面所有文件的要点。
【问题讨论】:
-
您是否覆盖了
Course的equals()方法?
标签: java list user-interface javafx