Как использовать отражение для выполнения универсального конструктора - PullRequest
0 голосов
/ 13 февраля 2019

Допустим, у меня, например, String type = "Integer", а с другой стороны у меня есть public class MyType<T> с конструктором public MyType(){} Как я могу использовать метод java отражения newInstance, чтобы иметь возможность что-то делать по линиям:

public static MyType<?> create(String type){

    return /*new MyType<Integer>() if type was "Integer", etc*/;

}

1 Ответ

0 голосов
/ 13 февраля 2019

Для этого вам не нужен параметр «String type», вы можете просто использовать следующий код:

public static void main(final String[] args)
{
    final MyType<Integer> myType1 = create();
    myType1.v = 1;
    final MyType<String> myType2 = create();
    myType2.v = "1";
    System.out.print(myType1);
    System.out.print(myType2);
}

public static class MyType<T>
{
    T v;
}

public static <K> MyType<K> create()
{
    return new MyType<>();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...