java动态对象创建和函数调用
问题是调用Honda class display方法。调用哪个类方法取决于运行时传递的字符串变量。在这里,我使用了Honda的一个父类,以便实现运行时多态性。但是我得到了ClassNotFoundException,即使它包含在main的throws子句中。不知道该怎么办
下面是同一个包中所有三个类的代码
车。爪哇
package com.company;
public class Vehicle {
public void display() {
System.out.println("Random text");
}
}
本田。爪哇
package com.company;
public class Honda extends Vehicle{
public void display()
{
System.out.print("honda called");
}
}
梅因。爪哇
package com.company;
import java.lang.reflect.InvocationTargetException;
public class Main {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
String className = "Honda";
Class cls = Class.forName(className);
Vehicle v = (Vehicle) cls.getDeclaredConstructor().newInstance();
v.display();
}
}
我得到的错误是:
Exception in thread "main" java.lang.ClassNotFoundException: Honda
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at com.company.Main.main(Main.java:10)
我想我也需要处理本田类中的ClassNotFoundException,但是扩展和抛出不能同时工作。请帮我找出问题所在
共 (0) 个答案