为了安排作业的执行,我将类的名称作为字符串输入。
这个类可能在两个包之一中,但我不知道是哪一个,所以我必须检查这个。
到目前为止,我有两个 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
?