今、私はこの問題に取り組んできましたが、誰かが援助を受けることができるかどうか疑問に思っていました。私は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())}});
OR
for(Course c : courses) {
if(c.equals(course)) {select.setModules(c.getModulesOnCourse());}
}
どちらも理論的には完璧に動作するはずですが、どちらも動作しません。なぜ誰かが理由を理解するのを手伝ってくれるのか、おそらく解決策を提供することができるのだろうかと思います。簡単に私は下のすべてのファイルの要点を添付します。 ==
を使用して
'Course'の' equals() 'メソッドをオーバーライドしましたか? – rdonuk