gpt4 book ai didi

java - JavaPoet如何生成没有名字的注解?

转载 作者:搜寻专家 更新时间:2023-11-01 02:20:08 25 4
gpt4 key购买 nike

假设我想用类似@RunWith(AndroidJUnit4.class) 的东西来注释一个类。一般的 JavaPoet 配方是:

  private static ClassName RUN_WITH=ClassName.get("org.junit.runner", "RunWith");
private static ClassName ANDROID_JUNIT4=ClassName.get("android.support.test.runner", "AndroidJUnit4");

private TypeSpec buildTestClass() {
return TypeSpec.classBuilder("MainActivityTest")
.addModifiers(Modifier.PUBLIC)
.addAnnotation(AnnotationSpec.builder(RUN_WITH)
.addMember(null, "$T.class", ANDROID_JUNIT4)
.build())
.build();
}

但是,AnnotationSpec.Builder 上的两个 addMember() 方法各有一个成员名称……而我不需要名称。我尝试了 null,如上所示,生成:

@RunWith(
null = AndroidJUnit4.class
)

那么...我们如何生成“匿名”(或任何用于单个未命名成员的适当术语)注释?

最佳答案

要使用的魔法名称是value:

  private static ClassName RUN_WITH=ClassName.get("org.junit.runner", "RunWith");
private static ClassName ANDROID_JUNIT4=ClassName.get("android.support.test.runner", "AndroidJUnit4");

private TypeSpec buildTestClass() {
return TypeSpec.classBuilder("MainActivityTest")
.addModifiers(Modifier.PUBLIC)
.addAnnotation(AnnotationSpec.builder(RUN_WITH)
.addMember("value", "$T.class", ANDROID_JUNIT4)
.build())
.build();
}

这会根据需要生成 @RunWith(AndroidJUnit4.class)

关于java - JavaPoet如何生成没有名字的注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47972330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com