[英]How to convert String type to Class type in java
我想在包中打印所有类名,并在每个包中打印相应的属性及其数据类型。
在一个代码中,我能够以字符串的形式获取类名。 在另一个代码中,我能够使用Classname.class.getAttribute();
获取属性及其数据类型Classname.class.getAttribute();
但是我想合并这两个代码。 因为在第一个代码中我得到了字符串形式的类名,所以我不能使用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的一个实现。
请尝试以下。
String str = "RequiredClassName";
Class <?> Cref = Class .forName("PackageNaem."+str );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.