原谅我对Java导入的困惑-我来自Python。

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

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() + ",\n" + "You've just won the lotto!"));
        document.close();
    }


我已将适用的itext-pdf jar文件添加到项目的路径。我已经在此类的开头用通配符import语句导入了整个库:

import com.itextpdf.*;


Eclipse仍然给我红色带下划线的Document对象以及DocumentException和FileNotFound Exception对象错误。我可以选择从itextpdf导入Document类,但是似乎我的通配符语句已经涵盖了这一点。这是怎么回事?

最佳答案

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

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

09-26 21:42