Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我必须导入InvocationTargetException,因为它';在java.lang中是什么?_Java_Invocationtargetexception - Fatal编程技术网

为什么我必须导入InvocationTargetException,因为它';在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

我试图在我的文件中捕获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
才能添加@Slaw, java中没有隐式子包导入

package a;
class A{}

如果要在A中使用B,则必须将其显式导入为:
import A.B.B
导入a.b.*


希望这能帮助它默认导入java.lang.*。但它不会导入子包IMHO。谢谢,这意味着您只能在import语句的末尾有类。导入*将导致导入它下面的所有类,而不包括它下面的包。非常感谢,这绝对有帮助
package a.b;
   class B{}