根据要求,我有类的名称,我需要检查这个类的名称是否存在于特定的包中。这是我的项目结构:
app/entities/ <Classes>
app/contracts/CheckClass.java
我正在编写CheckClass.java
中的代码,并在文件中获取classNotFoundException
。这是我的以下代码:
public boolean isClass(String className) {
try {
Class.forName(className.trim());
return true;
} catch (ClassNotFoundException e) {
return false;
}
}
我每次都会ClassNotFoundException
。我检查了传递正确类名的className
字符串。是因为不同的包装?
答案 0 :(得分:2)
您的班级名称必须是完全合格的,请参阅Class#forName(String):
例如,以下代码片段返回名为
Class
的类的运行时java.lang.Thread
描述符:
Class t = Class.forName("java.lang.Thread")
在您的情况下:app.contracts.CheckClass
答案 1 :(得分:0)
来自Javadoc:
参数:
className - 所需类的完全限定名称。
完全限定的类名称采用package.class
格式。一个例子是java.lang.System
。永远看看Javadoc。
根据您的问题,“我需要检查此类名称是否存在于特定包中” - 我会添加if
语句来检查className
是否以包开头字符串。