【发布时间】:2017-12-26 06:08:26
【问题描述】:
假设我想用@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
)
那么...我们如何生成“匿名”(或任何适合单个未命名成员的术语)注释?
【问题讨论】: