Salve,
questo è un esempio per l'utilizzo delle suddette api:
Riferimento api:codice:AST ast = new AST(); CompilationUnit unit = ast.newCompilationUnit(); PackageDeclaration packageDeclaration = ast.newPackageDeclaration(); packageDeclaration.setName(ast.newSimpleName("example")); unit.setPackage(packageDeclaration); ImportDeclaration importDeclaration = ast.newImportDeclaration(); QualifiedName name = ast.newQualifiedName( ast.newSimpleName("java"), ast.newSimpleName("util")); importDeclaration.setName(name); importDeclaration.setOnDemand(true); unit.imports().add(importDeclaration); TypeDeclaration type = ast.newTypeDeclaration(); type.setInterface(false); type.setModifiers(Modifier.PUBLIC); type.setName(ast.newSimpleName("HelloWorld")); MethodDeclaration methodDeclaration = ast.newMethodDeclaration(); methodDeclaration.setConstructor(false); methodDeclaration.setModifiers(Modifier.PUBLIC | Modifier.STATIC); methodDeclaration.setName(ast.newSimpleName("main")); methodDeclaration.setReturnType(ast.newPrimitiveType(PrimitiveType.VOID)); SingleVariableDeclaration variableDeclaration = ast.newSingleVariableDeclaration(); variableDeclaration.setModifiers(Modifier.NONE); variableDeclaration.setType(ast.newArrayType(ast.newSimpleType(ast.newSimpleName("String")))); variableDeclaration.setName(ast.newSimpleName("args")); methodDeclaration.parameters().add(variableDeclaration); org.eclipse.jdt.core.dom.Block block = ast.newBlock(); MethodInvocation methodInvocation = ast.newMethodInvocation(); name = ast.newQualifiedName( ast.newSimpleName("System"), ast.newSimpleName("out")); methodInvocation.setExpression(name); methodInvocation.setName(ast.newSimpleName("println")); InfixExpression infixExpression = ast.newInfixExpression(); infixExpression.setOperator(InfixExpression.Operator.PLUS); StringLiteral literal = ast.newStringLiteral(); literal.setLiteralValue("Hello"); infixExpression.setLeftOperand(literal); literal = ast.newStringLiteral(); literal.setLiteralValue(" world"); infixExpression.setRightOperand(literal); methodInvocation.arguments().add(infixExpression); ExpressionStatement expressionStatement = ast.newExpressionStatement(methodInvocation); block.statements().add(expressionStatement); methodDeclaration.setBody(block); type.bodyDeclarations().add(methodDeclaration); unit.types().add(type);
http://help.eclipse.org/help32/topic..._api_manip.htm
ora, se io volessi inserire un campo con una visbilità, nome e valore, come dovrei fare per averlo in output?
esempio che vorrei:
codice:package example; import java.util.*; public class HelloWorld { public static void main(String[] args) { public int campo = 2; System.out.println("Hello" + " world"); } }
ho provato ad usare SingleVariableDeclaration per dargli un nome e un tipo, cosi:
SingleVariableDeclaration var = ast.newSingleVariableDeclaration();
var.setType(ast.newPrimitiveType(PrimitiveType.INT ));
var.setName(ast.newSimpleName("campo1"));
ma poi non sò come andare avanti e associare questo campo al blocco del metodo main
qualcuno mi illumina?
grazie


Rispondi quotando