为什么我必须导入InvocationTargetException,因为它';在java.lang中是什么?
我试图在我的文件中捕获InvocationTargetException,但是如果我没有显式地为它编写import语句,就会出现这个错误 因为它在java.lang的子包下,我不知道为什么要导入它为什么我必须导入InvocationTargetException,因为它';在java.lang中是什么?,java,invocationtargetexception,Java,Invocationtargetexception,我试图在我的文件中捕获InvocationTargetException,但是如果我没有显式地为它编写import语句,就会出现这个错误 因为它在java.lang的子包下,我不知道为什么要导入它 //this is the import statement that worked import java.lang.reflect.InvocationTargetException; 这是错误消息: source\DatabaseDemo.java:38: error: cannot fin
//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
才能添加@Slaw,
java中没有隐式子包导入
package a;
class A{}
及
如果要在A中使用B,则必须将其显式导入为:import A.B.B代码>或导入a.b.*代码>
希望这能帮助它默认导入java.lang.*。但它不会导入子包IMHO。谢谢,这意味着您只能在import语句的末尾有类。导入*将导致导入它下面的所有类,而不包括它下面的包。非常感谢,这绝对有帮助
package a.b;
class B{}