为什么java Charset需要额外导入?

时间:2017-06-07 14:51:25

标签: java io

基于本教程,我正在教自己一些关于Java中的文件和I / O:Oracle Tutorial

现在,在写了一些例子来理解输入和输出后,我得到了关于某些库的导入的问题。

我创建了以下示例程序,我问自己为什么该程序说:

  

找不到符号 - 类Charset

import java.nio.*;

public class test
{

public static void main(String[] args)
{
    Charset charset = Charset.forName("US-ASCII");
}

}

我知道解决方案是导入以下内容     import java.nio.charset。*;

但是为什么我必须导入它,如果我已经有了父库?

3 个答案:

答案 0 :(得分:0)

您导入的是包,而不是库。库可能包含多个包,但这并不意味着您可以单独导入它们。

此外,Charset类属于java.nio。 charset 包,而您已导入java.nio。文件包。两者之间没有关系 - 一个不是另一个的父母。

答案 1 :(得分:0)

  

但是为什么我必须导入它,如果我已经有了父库?

不,你不是,想象包作为文件夹和子文件夹定义路径......

导入时

java.nio.file *;

您正在访问该“路径”中的所有课程

但Charset位于java.nio.charset文件夹中....这实际上是另一条完全不同的路径......

您的意思是从父包中导入所有内容,例如

  

java.nio中。*;

答案 2 :(得分:0)

帮助的一个例子就是当你想到它时,对象包是所有包的王者,但是如果你导入它,你就不会得到它下面的所有东西。然后就没有必要进口东西了,更不用说这会产生的问题了。您不能只导入一个包,并期望在它下面创建的所有包都带有它。出于存储原因,仍然需要子包。