我正在尝试在文件中捕获InvocationTargetException,但是如果我未明确为其编写import语句,则会收到此错误。
由于它位于java.lang的子包下,因此我不知道为什么必须导入它。
//this is the import statement that worked
import java.lang.reflect.InvocationTargetException;
这是错误消息:
source\DatabaseDemo.java:38: error: cannot find symbol
}catch (NoSuchMethodException | InstantiationException | SQLException | ClassNotFoundException | IllegalAccessException | InvocationTargetException e ){
^
symbol: class InvocationTargetException
location: class DatabaseDemo
最佳答案
Java中没有子包的概念。为了方便起见,并且由于源代码通常结构化为目录层次结构,因此我们将软件包视为分层结构。但是,在语言级别上,不存在这样的层次结构。换句话说,java.lang.reflect
不是java.lang
的“子包”。而且由于仅java.lang
包的类是自动导入的,因此您必须显式导入InvocationTargetException
。