2017-06-12 12 views
0

Ich bin etwas neu in der Javac Programmierung und ich möchte eine JCExpression erstellen, um Annotationswerte zu geben. Ich habe überall gesucht, aber kein Glück.Wie erstelle ich eine neue JCExpression um Annotationswerte zu geben

das ist, was ich habe

if (templates.size() > 0) { 
List <JCTree.JCAnnotation> annotations = templates; 

for (JCTree.JCAnnotation jcAnnotation: annotations) { 
    JCTree.JCExpression jcExpression = new JCTree.JCExpression() { 
    @Override public Tag getTag() { 
    return null; 
    } 

    @Override public void accept(Visitor visitor) { 

    } 

    @Override public < R, D > R accept(TreeVisitor < R, D > treeVisitor, D d) { 
    return null; 
    } 

    @Override public Kind getKind() { 
    return null; 
    } 
    }; 

    List <JCTree.JCExpression> jcExpressions = jcAnnotation.getArguments(); 

    for (JCTree.JCExpression jcExpression1: jcExpressions) { 
    jcExpression1 = jcExpression; 
    } 
} 

bitte mir bisher versucht helfen !!!

Antwort

1

fand die Lösung selbst

for (JCTree.JCAnnotation annotation: templates) { 
List <JCTree.JCExpression> expressionList = annotation.args; 
for (JCTree.JCExpression expression: expressionList) { 

    expression.accept(new TreeTranslator() { 
    @Override public void visitLiteral(JCTree.JCLiteral jcLiteral) { 
    super.visitLiteral(jcLiteral); 
    JCTree.JCLiteral val = treeMaker.Literal("<custom value>"); 
    jcLiteral.value = val.value; 
    } 

    @Override public void visitIdent(JCTree.JCIdent jcIdent) { 
    super.visitIdent(jcIdent); 
    <track the parameters> 
    } 
    }); 
} 
} 
Verwandte Themen