我正在尝试在文件中捕获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

07-27 21:00
查看更多