如何在下面的代码中提及类的路径?
Class cl=Class.forName("SomeClass");
如果“SomeClass”位于调用类的同一目录中,则此方法很有效。但是如何从不同的目录中检查一个类,我看到它的语法就像xxxx.yyyy.class
,但是无法弄清楚那些'x'和'y代表什么。请帮忙。
提前谢谢。
答案 0 :(得分:3)
使用fully-qualified class name.例如,要使用java.lang
包中的Java SE String
类执行此操作:
Class clazz = Class.forName("java.lang.String");
答案 1 :(得分:1)
那些xxx
和yyy
代表包名称。软件包通常由磁盘上的目录表示,其名称与软件包相同。创建类文件时,您可以通过在文件顶部指出package xxx.yyy
来指定类所在的包。
如果没有包名称的"SomeClass"
将尝试在默认包中加载名为SomeClass
的类。
答案 2 :(得分:0)
使用Class.forName虽然确保处理可能的ClassNotFoundException异常。这是运行时异常,因此并不意味着您需要捕获它。这就是你如何知道你上课的路径是否正确的方法。问题是,如果找不到类,那么你的代码就会发生有趣的事情。
Class.forName(com.my.package.ClassName)