如何使用java诗人生成泛型方法?

时间:2018-04-24 09:56:10

标签: java javapoet

我想使用 javapoet

生成以下代码

Javapoet是一个自动生成java代码的库。

@SuppressWarnings("unchecked")
public static <T> T[] returnArrayForType(T value) {
    Object array = Array.newInstance(value.getClass(), 1);
    Array.set(array, 0, value);
    return (T[]) array;
}

我知道如何为已定义的类型编写,但我该如何处理呢?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您可以使用TypeVariableName。下面的片段应该可以帮到你。

TypeVariableName typeVariable = TypeVariableName.get("T");
MethodSpec.Builder methodBuilder = MethodSpec.methodBuilder("returnArrayForType")
        .addParameter(typeVariable, "value")
        .addTypeVariable(typeVariable)
        .returns(ArrayTypeName.of(typeVariable))
        .addModifiers(Modifier.PUBLIC, Modifier.STATIC);