【问题标题】:What is the purpose of * in java.io.*java.io.*中*的目的是什么
【发布时间】:2014-01-31 16:00:15
【问题描述】:

java.io.* 中 * 的用途是什么?

import java.io.*;
class Trial{
     public static void main(String[]args){
         System.out.println("Hello,World!");
     }
}

【问题讨论】:

  • 它将从 java.io 导入所有类。
  • 我无法找到:“需要对正在解决的问题有最低限度的了解”。我正在搜索它:因为您询问的方式(包括您的代码)告诉我您想了解 java 的打包系统,但问题很模糊(询问特定导入的目的!)
  • 这个问题似乎离题了,因为它是关于 OP 方面的一个简单误解,与 I/O 无关。

标签: java io


【解决方案1】:

* 告诉编译器按需导入java.io 中的所有顶级类。该构造称为 type-import-on-demand 声明。

来自JLS §7.5.2

type-import-on-demand 声明允许根据需要导入命名包或类型的所有可访问类型。

TypeImportOnDemand声明: 导入 PackageOrTypeName 。 * ;

因此,例如,由于您已经包含了该 import 语句,您可以使用像 java.io.File 这样的类,而不必在类型名称前面加上 java.io;您可以使用简单的名称File

【讨论】:

    【解决方案2】:

    星号表示应导入 java.io 包中的所有类。

    【讨论】:

      【解决方案3】:

      包名称import 中的通配符用于包含该特定包中包含的所有类。检查official documentation

      此外,您还可以导入内部静态类,以便能够在没有完全限定名称的情况下引用它们,例如:

      import org.package.MyClass;
      
      //MyClass.InnerClass inner; not needed
      InnerClass inner;
      

      【讨论】:

        猜你喜欢
        • 2011-03-05
        • 2014-08-27
        • 2014-08-21
        • 2017-04-10
        • 1970-01-01
        • 2011-03-05
        • 2015-03-21
        • 1970-01-01
        • 2020-02-27
        相关资源
        最近更新 更多