既然它位于 java.lang 中,为什么我必须导入 InvocabularyTarget

我试图在我的文件中捕获 InvocableTargetException ,但如果我没有明确为其编写导入语句,则会收到此错误。


由于它位于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


30秒到达战场
浏览 92回答 2
2回答

手掌心

Java中没有子包的概念。为了方便起见,我们人类将包视为分层的,因为源代码通常被构造为目录的层次结构。然而,在语言级别上不存在这样的层次结构。换句话说,java.lang.reflect不是 的“子包” java.lang。由于只有包的类java.lang是自动导入的,因此您必须显式导入InvocationTargetException。

喵喵时光机

要添加什么@Slaw,java中没有隐式子包导入。package a; class A{}和package a.b;    class B{}如果您想在 A 中使用 B,则必须将其显式导入为:import a.b.B;或import a.b.*;希望能有所帮助
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java