ジョブの実行をスケジュールするために、クラスの名前を文字列入力として取得します。
このクラスは 2 つのパッケージのいずれかに含まれている可能性がありますが、どちらのパッケージかわからないため、これを確認する必要があります。
今では、2 つの try-catch-blocks があります
Class<Job> clazz;
String className; //the above mentioned string, will be initialized
try {
clazz = (Class<Job>) Class.forName("package.one." + className);
} catch (ClassNotFoundException ex) {
try {
clazz = (Class<Job>) Class.forName("package.two." + className);
} catch (ClassNotFoundException ex1) {
//some error handling code here, as the class is
//in neither of the two packages
}
}
より多くのパッケージでは、これはより醜く、より読みにくくなります。さらに、例外はフロー制御に期待/使用されるべきではないため、私にとっては例外の概念に反しています!
を利用せずにこれを書き直す方法はありますClassNotFoundException
か?