如何在java中将String类型转换为Class类型
我想打印包中的所有类名,并在每个包中打印相应的属性及其数据类型。
在一个代码中,我能够以字符串的forms获取类名。 在另一个代码中,我能够使用Classname.class.getAttribute();
获取属性及其数据类型Classname.class.getAttribute();
但是我想合并这两个代码。 因为在第一个代码中我得到了字符串forms的类名,所以我不能使用Classname.class.getAttribute()
因为这里Classname
的类型是String
。
所以我想要一个将“Classname”从String
类型转换为Class
类型的方法。
我尝试了Class.forName()
但它没有用。
Class> classType = Class.forName(className);
确保className
是完全限定的类名,如com.package.class
此外,请分享您看到的错误消息。
如果类的完全限定名称可用,则可以使用静态方法Class.forName()获取相应的Class。
例如:
Class c = Class.forName("com.duke.MyLocaleServiceProvider");
注意:确保为函数提供的参数是完全限定的类名,如com.package.class
点击这里查看任何参考。
编辑:
您也可以尝试使用loadClass()
方法。
例如:
ClassLoader cl; Class c = cl.loadClass(name);
它由Java虚拟机调用以解析类引用。
句法:
public Class> loadClass(String name) throws ClassNotFoundException
有关ClassLoader的详细信息,请点击此处
这是ClassLoader的一个实现。
请尝试以下。
String str = "RequiredClassName"; Class > Cref = Class .forName("PackageNaem."+str );