【发布时间】:2016-09-09 18:54:15
【问题描述】:
我想使用 JavaPoet 生成一个以类型文字为值的注解。例如:
@AutoService(MyService.class)
public class GeneratedClass implements MyService {
}
我已经尝试了所有我能想到的选项,但没有一个可行:
TypeSpec.classBuilder("GeneratedClass")
.addModifiers(Modifier.PUBLIC)
.addSuperinterface(MyService.class)
.addAnnotation(
AnnotationSpec.builder(AutoService.class).addMember(
"value", "$L", MyService.class
).build()
)
使用$L 生成interface MyService
使用$T 生成my.package.MyService,这很接近但错过了.class 部分。
使用$N 会报错:expected name but was my.package.MyService
如何让它生成MyService.class 作为注释值?
【问题讨论】: