0

如何在以下代码中提及类的路径?

Class cl=Class.forName("SomeClass");

如果“SomeClass”位于调用类的同一目录中,则此方法效果很好。但是如何检查来自不同目录的类,我看到了类似的语法xxxx.yyyy.class,但无法弄清楚那些'x's 和'y's 代表什么。请帮忙。提前致谢。

4

3 回答 3

3

使用完全限定的类名。例如,要使用包String中的 Java SE 类执行此操作java.lang

Class clazz = Class.forName("java.lang.String");
于 2012-08-28T18:45:48.040 回答
1

那些xxxyyy代表包名称。包通常由磁盘上与包同名的目录表示。创建类文件时,您可以通过package xxx.yyy在文件顶部说明来指定该类所在的包。

在没有包名的情况下引用"SomeClass"将尝试加载SomeClass在默认包中命名的类。

于 2012-08-28T18:45:55.660 回答
0

使用 Class.forName 尽管确保您处理可能的 ClassNotFoundException 异常。这是一个运行时异常,因此并不意味着您需要捕获它。这就是您如何知道您的班级路径是否正确。问题是,如果它找不到类,你的代码可能会发生有趣的事情。

Class.forName(com.my.package.ClassName)
于 2012-08-28T18:52:11.820 回答