下面的进口报关会进口什么?
What will the following import declaration import?
java.io.Reader.*;
我知道 Reader
是 class,不是包裹。
那么,上面的声明会导入什么?
在同一个文件中,您可以同时拥有两者
import java.io.Reader; //Statement 1
import static java.io.Reader.*; //Statement 2
第一个只从包 java.io
导入 class Reader
,
第二个是导入 class Reader 的所有静态成员,似乎只有
private static final int maxSkipBufferSize = 8192;
所以,非常无用,因为它是私有的,你不能从你的 class 访问它,既不能用于阅读也不能用于修改
语句 1 将包含您可以在代码中使用的 Reader Class,因为此 class 用于读取字符流
声明 2 将包括来自 Reader 的所有 Classes。* 包(如果它是一个包),我假设它是通用的
声明:
import java.io.Reader.*;
是 type-import-on-demand 声明的示例。来自 Java Language Specification:
A type-import-on-demand declaration allows all accessible types of a named package or type to be imported as needed.
由于 java.io.Reader
不包含嵌套 类 或其他可访问的类型,声明将被简单地忽略。
请注意 Java 也有一个 import static
声明。所以
import static java.io.Reader.*;
将是 static-import-on-demand 声明的示例。同样,根据 Java 语言规范:
A static-import-on-demand declaration allows all accessible static members of a named type to be imported as needed.
并且由于 java.io.Reader
也没有可访问的静态成员,声明将再次被忽略。
java.io.Reader.*;
我知道 Reader
是 class,不是包裹。
那么,上面的声明会导入什么?
在同一个文件中,您可以同时拥有两者
import java.io.Reader; //Statement 1
import static java.io.Reader.*; //Statement 2
第一个只从包 java.io
导入 class Reader
,
第二个是导入 class Reader 的所有静态成员,似乎只有
private static final int maxSkipBufferSize = 8192;
所以,非常无用,因为它是私有的,你不能从你的 class 访问它,既不能用于阅读也不能用于修改
语句 1 将包含您可以在代码中使用的 Reader Class,因为此 class 用于读取字符流
声明 2 将包括来自 Reader 的所有 Classes。* 包(如果它是一个包),我假设它是通用的
声明:
import java.io.Reader.*;
是 type-import-on-demand 声明的示例。来自 Java Language Specification:
A type-import-on-demand declaration allows all accessible types of a named package or type to be imported as needed.
由于 java.io.Reader
不包含嵌套 类 或其他可访问的类型,声明将被简单地忽略。
请注意 Java 也有一个 import static
声明。所以
import static java.io.Reader.*;
将是 static-import-on-demand 声明的示例。同样,根据 Java 语言规范:
A static-import-on-demand declaration allows all accessible static members of a named type to be imported as needed.
并且由于 java.io.Reader
也没有可访问的静态成员,声明将再次被忽略。