JavaPoet中如何构造Bar.class形式的类引用?
JavaPoet构造Class字面量引用的方式
目前JavaPoet并没有提供专门的工具方法(比如你设想的literalReference())来直接生成Bar.class这种Class字面量引用。
你当前使用的写法:
ClassName barClassName = ClassName.get("com.example", "Bar"); // ... .addStatement("foo($T.class)", barClassName) // ...
就是JavaPoet推荐的标准做法,它会正确生成foo(Bar.class)的代码,既简洁又能保证类型的正确性,不需要额外的工具方法。
如果需要处理数组类型的Class字面量(比如Bar[].class),可以借助ArrayTypeName配合同样的写法实现:
ArrayTypeName barArrayType = ArrayTypeName.of(barClassName); .addStatement("fooArray($T.class)", barArrayType)
这段代码会生成fooArray(Bar[].class)的调用语句。
内容的提问来源于stack exchange,提问作者Garret Wilson
相关产品推荐
相关产品推荐

