如何检查类是否存在

时间:2015-11-18 07:02:33

标签: java

是否有'Class'类的静态方法可以告诉我们用户输入类(以String的形式)是否是有效的现有Java类名?

2 个答案:

答案 0 :(得分:9)

您可以使用Class.forName一些额外的参数来解决Rahul的答案中的限制。

Class.forName(String)确实加载并初始化了类,但如果第二个参数为false,则Class.forName(String, boolean, ClassLoader)不会初始化它。

如果您有这样的课程:

public class Foo {
    static {
        System.out.println("foo loaded and initialized");
    }
}

你有

Class.forName("com.example.Foo")

控制台中的输出为foo loaded and initialized

如果您使用

Class.forName("com.example.Foo", 
              false, 
              ClassLoader.getSystemClassLoader());

您将看到未调用静态初始值设定项。

答案 1 :(得分:5)

您可以使用Class.forName检查是否存在类,如下所示:

try 
{
   Class.forName( "myClassName" );
} 
catch( ClassNotFoundException e ) 
{

}