首页 > 解决方案 > 如何使用 JavaParser 向解析文件添加新方法?

问题描述

我已经解析了一个 java 文件并得到了编译单元

cu = JavaParser.parse(in);java文件中的编译 单元

如何使用 this 添加一些新方法cu

我只想在我的原始类中添加新方法。

标签: javaparser

解决方案


这是一个关于如何创建方法并将其添加到编译单元的示例:

    // create the type declaration 
    ClassOrInterfaceDeclaration type = cu.addClass("GeneratedClass");

    // create a method
    EnumSet<Modifier> modifiers = EnumSet.of(Modifier.PUBLIC);
    MethodDeclaration method = new MethodDeclaration(modifiers, new VoidType(), "main");
    modifiers.add(Modifier.STATIC);
    method.setModifiers(modifiers);
    type.addMember(method);

    // or a shortcut
    MethodDeclaration main2 = type.addMethod("main2", Modifier.PUBLIC, Modifier.STATIC);

    // add a parameter to the method
    Parameter param = new Parameter(new ClassOrInterfaceType("String"), "args");
    param.setVarArgs(true);
    method.addParameter(param);

    // or a shortcut
    main2.addAndGetParameter(String.class, "args").setVarArgs(true);

    // add a body to the method
    BlockStmt block = new BlockStmt();
    method.setBody(block);

    // add a statement do the method body
    NameExpr clazz = new NameExpr("System");
    FieldAccessExpr field = new FieldAccessExpr(clazz, "out");
    MethodCallExpr call = new MethodCallExpr(field, "println");
    call.addArgument(new StringLiteralExpr("Hello World!"));
    block.addStatement(call);

推荐阅读