Java中的嵌套包

Den*_*kov 5 java import packages libraries

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

SRC:

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

我没问题.后来我想将这个库导入另一个项目并调用

import LibA.*;
Run Code Online (Sandbox Code Playgroud)

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

import LibA.pack1;
Run Code Online (Sandbox Code Playgroud)

如何一次导入整个库以便能够使用pack1和pack2这两个类?

Ps它绝对不称为"嵌套包",但我不知道如何调用它.Pps如果重要,我正在使用Eclipse.

提前致谢:)

Era*_*ran 16

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

import LibA.pack1.*;
import LibA.pack2.*;
Run Code Online (Sandbox Code Playgroud)

LibA.pack1与...无任何关联LibA.pack2,并且它们都与LibA包无关,因此如果LibA您要导入其他类,则需要第三次导入:

import LibA.*;
Run Code Online (Sandbox Code Playgroud)

包的表观层次结构

首先,包似乎是分层的,但它们不是.例如,Java API包括java.awt包,java.awt.color包,java.awt.font包以及许多以java.awt开头的包.但是,java.awt.color包中包含java.awt.color包,java.awt.font包和其他java.awt.xxxx包.前缀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.*;
Run Code Online (Sandbox Code Playgroud)