0

我已经设置了字符串,我需要将它们添加到类型为PdfPCell的ArrayList中,以便稍后使用 iText 库处理它们。这是代码:

try {
    Scanner scan = new Scanner(new File("file.txt"));
    scan.useDelimiter(",|" + System.getProperty("line.separator"));

    while(scan.hasNext()) {
        String id = scan.next();
        String txt1 = scan.next();
        String txt2 = scan.next();
        String txt3 = scan.next();

        // ArrayList with PdfPCell type
        List<PdfPCell> allCols = new ArrayList<PdfPCell>();
        allCols.add(id);
        allCols.add(txt1);
        allCols.add(txt2);
        allCols.add(txt3);

        System.out.println(allCols);
    }
    scan.close();
} catch (Exception e) {
    e.printStackTrace();
}

错误: The method add(PdfPCell) in the type List<PdfPCell> is not applicable for the arguments (String)

我被困在这里。如何解决这个问题呢?提前致谢。

4

2 回答 2

0

列表allColsPdfPCell键入。您不能将String对象添加到其中。由于String不是PdfPCell:) 的子类,所以它应该引发编译时错误。

您应该简单地在其中创建PdfPCell添加对象。

List<PdfPCell> allCols = new ArrayList<PdfPCell>();
allCols.add(new PdfPCell(new Phrase(id));
allCols.add(new PdfPCell(new Phrase(txt1));
...
于 2013-09-10T11:21:54.307 回答
0

id是一个String并且不能直接转换/类型转换为您的自定义类型PdfPCell。即使PdfPCell只有 1 个 String 实例变量。

要解决这个问题,您可以将String 参数构造函数添加到您的PdfPCell或更好地添加创建工厂。

List<PdfPCell> allCols = new ArrayList<PdfPCell>();
allCols.add(Factory.getPdfCell(id));//or
allCols.add(new PdfPCell(id));
于 2013-09-10T11:24:05.577 回答