如何使用JavaPoet创建带有可变参数列表的方法?
使用JavaPoet创建带可变参数的方法
当然可以实现!你当前的代码是创建了一个带String[]数组参数的方法,要生成String...这种可变参数形式,只需要在参数配置里开启可变参数标记就行。
修改后的示例代码
curEnumBuilder.addMethod(MethodSpec.methodBuilder("myMethod") .addParameter(ParameterSpec.builder(String.class, "params") .addModifiers(Modifier.FINAL) .varargs(true) // 关键:启用可变参数特性 .build()) .addModifiers(Modifier.PUBLIC) .returns(String.class) .build());
生成的代码效果
这段代码会生成你想要的目标方法签名:
public String myMethod(final String... params)
关键区别说明
- 你原来的写法直接传入
String[].class,生成的是标准数组参数; - 改用
ParameterSpec并调用.varargs(true)后,JavaPoet会自动按照Java可变参数的语法规范生成String...形式,本质上它和数组参数是等价的,但写法更符合可变参数的使用习惯。
内容的提问来源于stack exchange,提问作者opfau
相关产品推荐
相关产品推荐

