[英]Error while creating class object using string in java
创建使用Class.forName()的对象时,出现以下错误。 您能确认我做错了吗?
Exception in thread "main" java.lang.ClassNotFoundException: ABC
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at RandomPrograms.ClassObjectFromString.main(ClassObjectFromString.java:32)
ClassObjectFromString.java
import java.lang.reflect.Constructor;
class ABC {
ABC() {
System.out.println("ABC called!!! ");
}
ABC(String a) {
System.out.println("ABC called : " + a);
}
}
class ClassObjectFromString {
public static void main(String[] args) throws Exception {
Class<?> clazz = Class.forName("ABC");
Constructor<?> ctor = clazz.getConstructor(String.class);
Object object = ctor.newInstance(new Object[] { "Message" });
}
}
public static Class<?> forName(String className)
提供所需类的标准名称,其中也包括您的软件包名称。 因此,我们将使用RandomPrograms.ABC
这里有些错误:
因此您的代码应如下所示(假设程序包名称是RandomPrograms,请根据需要替换为您的程序):
public class ClassObjectFromString {
public static void main(String[] args) throws Exception {
Class<?> clazz = Class.forName("RandomPrograms.ABC");
Constructor<?> ctor = clazz.getConstructor(String.class);
Object object = ctor.newInstance(new Object[] { "Message" });
}
}
class ABC {
public ABC() {
System.out.println("ABC called!!! ");
}
public ABC(String a) {
System.out.println("ABC called : " + a);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.