Java 如何从同一类中的main()调用方法?

Java 如何从同一类中的main()调用方法?,java,jakarta-ee,main,Java,Jakarta Ee,Main,我有以下情况 我有一个Main类,我在其中声明了标准的公共静态voidmain(String[]args)方法 在这个main()方法的主体中,我试图调用以下printPdf()声明到main类中: private void printPdf() { /** The resulting PDF file: */ String result = "D:/SOFTLAB/massive_pdf_print.pdf"; // STEP 1 Creazione del doc

我有以下情况

我有一个Main类,我在其中声明了标准的公共静态voidmain(String[]args)方法

在这个main()方法的主体中,我试图调用以下printPdf()声明到main类中:

private void printPdf() {

    /** The resulting PDF file: */
    String result = "D:/SOFTLAB/massive_pdf_print.pdf";

    // STEP 1 Creazione del documento in formato A4 e senza margini:
    com.itextpdf.text.Document document = new com.itextpdf.text.Document(com.itextpdf.text.PageSize.A4, 0, 0, 0, 0);

    try {
        /* STEP 2 Constructs a PdfWriter.
                  document: The PdfDocument that has to be written.
                  os: The OutputStream the writer has to write to
         */
        PdfWriter.getInstance(document, new FileOutputStream(result));

        // STEP 3:
        document.open();

        // STEP 4:
        document.add(new Paragraph("Hello World!"));

        // STEP 5:
        document.close();

    }catch (DocumentException ex){
        ex.printStackTrace();
    }
    catch (IOException ex){
        ex.printStackTrace();
    }

}
称之为“我愿意”:

this.printPdf();
但是我得到了以下错误消息:'mainPkg.Main.this'不能从静态上下文引用

因此,我认为之所以会发生这种情况,是因为main()方法是一个静态方法,但我如何才能正确调用我的printPdf()方法(该方法在包含main()的同一main类中声明)


Tnx

将方法
printPdf()
声明为
static
,或者实例化一个新的Main类对象,然后从中调用它。

printPdf()
不是静态方法。它必须是你是否想从另一个静态方法调用它,比如
main
@bigdestropher:不,它不是-OP可以创建包含类的实例。说从静态方法中只能调用其他静态方法太简单了。实际上,您将创建一个新的
Main
实例,而不是一个新的类
Main
。但是,yes.yep,实例化一个新的类对象=创建这个类的一个新实例否,你的意思是实例化一个新的对象/类实例。但这只是吹毛求疵是的,但你是对的,如果我想成为一名称职的助手,名字很重要,已经纠正了