繁体   English   中英

如何在java中将String类型转换为Class类型

[英]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的详细信息,请点击此处

是ClassLoader的一个实现。

请尝试以下。

String str = "RequiredClassName";    
Class <?> Cref = Class .forName("PackageNaem."+str );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM