我正在尝试创建一个表数组(2个表)。 我的程序在最后一行停止,并带有nullpointer异常。知道为什么吗?
com.lowagie.text.pdf.PdfPTable[] table = new com.lowagie.text.pdf.PdfPTable[1];
// the cell object
com.lowagie.text.pdf.PdfPCell cell;
// header
cell = new PdfPCell(new Phrase(wdComponentAPI.getMessage("Ordernr")));
cell.setColspan(1);
cell.setBackgroundColor(Color.LIGHT_GRAY);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table[0].addCell(cell);
答案 0 :(得分:1)
您创建了数组,但其中没有任何内容。数组字段"表[0]"包含null。
添加这样的对象:
tables[0] = new PdfPTable();
或根据您的确切需要使用与PdfPTable()不同的构造函数
这是您的代码更新
com.lowagie.text.pdf.PdfPTable[] table = new com.lowagie.text.pdf.PdfPTable[1];
tables[0] = new PdfPTable();
// the cell object
com.lowagie.text.pdf.PdfPCell cell;
// header
cell = new PdfPCell(new Phrase(wdComponentAPI.getMessage("Ordernr")));
cell.setColspan(1);
cell.setBackgroundColor(Color.LIGHT_GRAY);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
table[0].addCell(cell);
答案 1 :(得分:1)
不使用创建的对象创建数组
PdfPTable [] tables = new PdfPTable[1];
tables[0].doStuff() // null pointer
在数组中创建对象
PdfPTable [] tables = new PdfPTable[1];
tables[0] = new PdfPTable();
tables[0].doStuff() // works good!
答案 2 :(得分:1)
用
com.lowagie.text.pdf.PdfPTable[] table = new com.lowagie.text.pdf.PdfPTable[1];
您只需创建一个长度为1的数组,此时table[0]
仍为null
。您必须创建一个对象并在使用它之前将其分配给它
table[0] = new PdfPTable(1); // create a PDFTable with one column