带有*的Java import语句没有提取类

Sab*_*ncu 5 java

(免责声明:我是Java新手,我也读过相关的SO问题.)

我有以下代码:

import org.apache.pdfbox.pdmodel.*;
...
PDFont font = PDType1Font.HELVETICA_BOLD;
Run Code Online (Sandbox Code Playgroud)

但是PDFontEclipse中没有认识到这个类.

当我添加以下内容时:

import org.apache.pdfbox.pdmodel.font.PDFont;
Run Code Online (Sandbox Code Playgroud)

PDFont类回升.

鉴于PDFont该类位于以星号结尾的第一个import语句中指定的层次结构下,为什么需要特定的import语句?

另外,如果没有方便的文档,有没有办法在库中搜索类的位置?

Sot*_*lis 12

按需import声明不是递归的

类型导入按需声明允许根据需要导入命名包或类型的所有可访问类型.

你的PDFont类型是包装

org.apache.pdfbox.pdmodel.font
Run Code Online (Sandbox Code Playgroud)

但你试图导入

 import org.apache.pdfbox.pdmodel.*;
Run Code Online (Sandbox Code Playgroud)

org.apache.pdfbox.pdmodel不包含名为的类型PDFont.

所以,或者,您可以使用

 import org.apache.pdfbox.pdmodel.font.*;
Run Code Online (Sandbox Code Playgroud)

另外,如果没有方便的文档,有没有办法在库中搜索类的位置?

如果库作为a发布.jar,您可以解压缩并搜索它.

大多数IDE通常都具有通过简单名称搜索类型的功能.例如,在Eclipse中,您可以使用CTRL (cmd) + SHIFT + T和键入要搜索的简单或完全限定名称(如果它在类路径上).

  • 使用IDE导入必要的类并且在没有依赖项时让IDE删除它们是不是更好?我似乎无法理解为什么在使用IDE时导入目录中的所有类会更有意义. (2认同)