gpt4 book ai didi

java - 将静态方法与注释处理和 javapoet 合并

转载 作者:太空宇宙 更新时间:2023-11-04 12:06:35 26 4
gpt4 key购买 nike

为了方便起见,我在多个类中有静态方法,我想将这些方法合并到一个新的生成的类中。

我正在使用注释处理和javapoet。

我的问题:从注释处理中,我将静态方法作为 ExecutableElements 列表获取。

对于 JavaPoet,我需要创建这些的 MethodSpec。我正在尝试:

 public MethodSpec apply(@Nullable ExecutableElement input) {
TypeMirror returnType = input.getReturnType();

return MethodSpec.methodBuilder(THE_METHOD_NAME)
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.returns(THE_RETURN_TYPE)
.addParameter(EVERY_PARAMETER_WITH_TYPE_AND_NAME)
.addStatement("$T.$S($S)", THE_ENCLOSING_CLASS, THE_METHOD_NAME, THE_PARAMETERS)
.build();
}

我的问题:如何获取大写字母中缺失单词的类型值?看起来 ExecutableElements 的行为不像反射 api。

最佳答案

这可能是一个示意性代码,您可以使用它来入门:

THE_METHOD_NAME -> input.getSimpleName()

THE_RETURN_TYPE -> input.getReturnType()

THE_ENCLOSING_CLASS -> input.getEnendingElement().getSimpleName()

EVERY_PARAMETER_WITH_TYPE_AND_NAME ->

for (VariableElement ve: executableElement.getParameters()){
System.out.println("Param name: " + ve.getSimpleName());
// note here that the type can be generic, so you'll need to parse
// the generic part and use to build a javapoet
// ParameterizedTypeName
System.out.println("Param type: " + ve.asType());
}

关于java - 将静态方法与注释处理和 javapoet 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40293938/

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