【问题标题】:Nested packages in JavaJava中的嵌套包
【发布时间】:2014-12-18 00:10:25
【问题描述】:

首先我想创建一个具有以下结构的自定义用户库:

源代码:

  • LibA.pack1
    • ClassName0.java
  • LibA.pack2
    • ClassName1.java

我对这个没有问题。稍后我想将这个库导入到另一个项目中并调用

import LibA.*;

(同时使用 pack1 和 pack2 类), 这将失败,因为它需要全名,即

import LibA.pack1;

如何一次导入整个库以便同时使用 pack1 和 pack2 类?

附:它绝对不称为“嵌套包”,但我不知道如何称呼它。 附言如果重要的话,我正在使用 Eclipse。

提前致谢:)

【问题讨论】:

    标签: java import packages libraries


    【解决方案1】:

    你不能,因为在 java 中没有嵌套包这样的东西。您必须显式导入这两个包。

    import LibA.pack1.*;
    import LibA.pack2.*;
    

    LibA.pack1LibA.pack2 没有任何关系,并且它们都与LibA 包无关,因此如果LibA 有您希望导入的其他类,则需要第三次导入:

    import LibA.*;
    

    Apparent Hierarchies of Packages

    起初,包似乎是分层的,但实际上并非如此。例如,Java API 包括一个 java.awt 包、一个 java.awt.color 包、一个 java.awt.font 包以及许多其他以 java.awt 开头的包。但是,java.awt.color 包、java.awt.font 包和其他 java.awt.xxxx 包不包含在 java.awt 包中。前缀 java.awt(Java 抽象窗口工具包)用于许多相关包以使关系明显,但不显示包含。

    导入 java.awt.* 会导入 java.awt 包中的所有类型,但不会导入 java.awt.color、java.awt.font 或任何其他 java.awt.xxxx 包。如果您打算使用 java.awt.color 和 java.awt 中的类和其他类型,则必须导入这两个包及其所有文件:

    import java.awt.*;
    import java.awt.color.*;
    

    【讨论】:

    • 感谢完美的解释!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 2015-04-06
    相关资源
    最近更新 更多