原谅我对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
完全不同的软件包。