请教关于Class.forName(str).newInstance()的问题:
下面的代码当我输入一个正确的类如Palne时,(Common) Class.forName("CalTime.vehicle."+args[0]).newInstance()这一句能够正确执行;
当我输入一个从为定义过的类如Abc时,(Common) Class.forName("CalTime.vehicle."+args[0]).newInstance()这一句有异常,但catch也能捉到;
但是,当我输入一个已经定义过的类,而类名的大小写打错时(如输入pLAne),怎么会即不能执行,又捉不到异常呢?
应该如何解决呢?不知道错误从哪个地方冒出来的,难道非得有一个这么一个系统类的方法把父类的所有子类的字符串形式都计算出来吗,有这样一个类和方法吗?
----------------------------
try {
Common d=(Common) Class.forName("CalTime.vehicle."+args[0]).newInstance();
v=d.runTimer(A,B,C);
t=1000/v;
System.out.println("平均速度: "+v+" km/h");
System.out.println("运行时间:"+t+" 小时");
}
catch(Exception e) {
System.out.println("class not found");
}
目录结构
CalTime
--------|--------
| |
| |
vehicle ComputTime.java
|
---------
| |
| |
all Palne.java /Car.java
|
|
Common.java