关于java:在类中导入整个JAR库

Importing an Entire JAR Library in a Class

请原谅我对Java导入的困惑——我来自Python后台。

我有一些使用IText库的代码:

1
2
3
4
5
6
7
8
public static void makeADoc (Person p, String outfile) throws DocumentException,FileNotFoundException{
        Document document = new Document;
        PdfWriter.getInstance(document, new FileOutputStream(outfile));
        document.open();
        document.add(new Paragraph("Hello" + p.getFirst() +",
"
+"You've just won the lotto!"));
        document.close();
    }

我已经将适用的IText PDF JAR文件添加到项目的路径中。我在本课开始时用通配符import语句导入了整个库:

1
import com.itextpdf.*;

然而,Eclipse仍然为文档对象、DocumentException和FileNotFound异常对象提供带红色下划线的错误。我可以选择从itextpdf导入document类,但我的通配符语句似乎已经涵盖了这一点。发生什么事?


FileNotFoundException不是来自itextpdf包,而是来自java.io包。所以您还应该添加这个import语句。还要记住,使用这样的通配符导入语句有时被认为是不好的做法,因为它可能会使您的命名空间混乱。

此外,使用通配符语句,可以导入包com.itextpdf中的所有类。但是,类DocumentException在包com.itextpdf.text中,而不是com.itextpdf中,因此您还必须添加此导入声明。请注意,在Java中没有子包的概念,即使人类有时使用这种类比。因此,com.itextpdf.textcom.itextpdf完全不同。