2013-02-13 3 views
-6

Мне интересно, как получить ссылку на Object внутри этого класса. У меня есть класс PDFBean с методами getter и setter, внутри этого класса есть метод 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; 
} 

OfferFactory:

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

Почему бы вам не попробовать? – PermGenError

+0

Вам нужно показать код. –

+2

Share stack trace пожалуйста и спасибо. – Woot4Moo

ответ

2

Если this ссылается на PDFBean, то вы можете вызвать функцию createPDF с ключевым словом this.

this - ключевое слово java, которое означает использование текущего экземпляра объекта, на который ссылается объект, на который ссылающийся объект является текущим классом.

+0

Как создать экземпляр 'this' перед его вызовом. – insict

+0

просто из любопытства, как может ключевое слово 'this' указать значение null? – PermGenError

+0

@ user1853125 обновлен, чтобы привести пример. – Woot4Moo

Смежные вопросы