如何在Inria Spoon中向CtAnnotation添加多个值

问题描述

我正在使用Spoon 8.2.0,并且还尝试了Spoon 8.3.0 beta 10:在下面的代码中,我尝试为注释添加多个值,但是它不能按预期工作。我在 Summary.java 中有一个Java注释Summary

package tryspoon;

public @interface Summary {
    String title();
    String date();
}

Spooner中, Spooner.java

package tryspoon;

import spoon.Launcher;
import spoon.SpoonAPI;
import spoon.reflect.declaration.CtAnnotation;
import spoon.reflect.reference.CtTypeReference;

public class Spooner {
    public static void main(String[] args) {
        SpoonAPI spoon = new Launcher();

        CtTypeReference<Summary> typeRef = spoon.getFactory().createCtTypeReference(Summary.class);
        CtAnnotation<Summary> annotation = spoon.getFactory().createAnnotation(typeRef);

        annotation.addValue("title","First summary");
        annotation.addValue("date","2020-10-05");

        // This outputs @tryspoon.Summary(date = "2020-10-05")
        System.out.println(annotation);

        // This outputs {date="2020-10-05",title=null}
        System.out.println(annotation.getAllValues());
    }
}

交换annotation.addValue("title","First Summary")annotation.addValue("date","2020-10-05")的顺序将使其仅显示title键和值 在注释中,并且date键在getAllValues()中的地图中为空。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)