-7

このクラス内の Object への参照を取得する方法を考えています。getter メソッドと setter メソッドを持つ PDFBean クラスがあります。このクラス内にはメソッドがあり、createPDF(PDFBean pdf)このような構文を使用したいのですcreatePDF(this)が可能ですか?

タイトル、ファイル名、説明フィールドを持つクラス:

    public void print() {
        PrintToPDF pdf = new PrintToPDF();
         try {  
                if(order.isEmpty())
                    System.out.println("PDFBean.print() <--\norderisEmpty!");
            pdf.createPdf(this);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

この構文を使用しようとしましたが、例外 NPE が発生します

createPDF():

    public int createPdf(PDFBean pdf) throws IOException, DocumentException {

OfferFactory of = new OfferFactory(pdf);

Document doc = new Document(PageSize.A4, 34, 34, 110, 45);
PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(
    RESULT));
HeaderFooter event = new HeaderFooter();

writer.setBoxSize("art", new Rectangle(36, 54, 559, 788));
writer.setPageEvent(event);
doc.open();
doc.add(createTitle(of.getTitle()));
doc.add(createDescription(of.getDescription()));
doc.add(createTable(of.getOrderList()));
doc.add(createSum(of.getSum(), of.getDiscount()));
doc.close();
return 0;
}

オファーファクトリー:

private List<OrderLine> orderList;
private String fileName, title, description;
private Double sum, discount;

public OfferFactory(PDFBean pdf) {
if(pdf == null) {
    throw new IllegalStateException("OfferFactory -> pdf is null");
}
orderList.addAll(pdf.getOrder());
fileName = pdf.getFileName();
title = pdf.getTitle();
description = pdf.getOpis();
sum = pdf.getSuma();
discount = pdf.getDiscount();
}
//getters......
4

1 に答える 1

2

thisがaを参照している場合は、キーワードを使用して関数をPDFBean呼び出すことができます。createPDFthis

thisは、参照オブジェクトの現在のインスタンスを使用することを意味するjavaキーワードです。ここで、参照オブジェクトは現在のクラスです。

于 2013-02-13T14:29:10.093 に答える