java如何通过类名称转换成类实体
在Java中,可以通过调用Class.forName()方法来将类名称转换为类实体。该方法接受一个字符串参数,该字符串表示类的完全限定名,包括包名和类名。它返回表示该类的Class对象。
以下是一个简单的示例:
String className = "com.example.MyClass";
try {
Class<?> myClass = Class.forName(className);
// 对于非泛型类,可以直接使用myClass来创建实例或调用静态方法
Object obj = myClass.newInstance();
// 对于泛型类,可以使用myClass来获取构造方法,然后创建实例
Constructor<?> constructor = myClass.getConstructor();
Object obj = constructor.newInstance();
// 获取类的方法、字段等信息
// ...
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
注意,Class.forName()方法在加载类时需要提供类的全限定名,包括包名和类名。如果类位于默认包中,只需提供类名即可。
另外,需要注意的是,通过Class.forName()方法加载类时,需要确保类的字节码文件已经被加载到JVM中,否则会抛出ClassNotFoundException异常
原文地址: https://www.cveoy.top/t/topic/h3dJ 著作权归作者所有。请勿转载和采集!