Как сгенерировать общий метод с помощью java поэта?

Я хочу создать приведенный ниже код, используя 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;
}

Я знаю, как писать для определенных типов, но как мне с этим справиться? Кто-нибудь может помочь?


person Chetan    schedule 24.04.2018    source источник
comment
Возможный дубликат Как создать универсальный массив в Java?   -  person daniu    schedule 24.04.2018


Ответы (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);
person Sukhpal Singh    schedule 29.04.2018
comment
Как насчет Class‹T› в качестве параметра метода? - person linjiejun; 09.10.2019