Лучший способ справиться с обработкой дженериков Java?JAVA

Программисты JAVA общаются здесь
Anonymous
Лучший способ справиться с обработкой дженериков Java?

Сообщение Anonymous »

Иметь метод: < /p>

Код: Выделить всё

public  T foo(Class type);
< /code>
Когда я называю это как: < /p>
String s = foo(String.class);
< /code>
Все в порядке. Это также работает: < /p>
Set s = foo(Set.class);
< /code>
Однако следующее не компилируется: < /p>
Set s = foo(Set.class);    // compilation error
< /code>
Так что я исправляю это с чем -то глупого, например: < /p>
Set tmp = foo(Set.class);
Set s = (Set) tmp;
Я не могу изменить подпись foo () . Есть ли лучший способ сделать это задание, которое мне не хватает? Он берет вход и создает экземпляр данного класса. Итак, реальная подпись Foo может быть:

Код: Выделить всё

public  T parseStringToClass(String input, Class targetClass);
< /code>
и использование может быть: < /p>
Integer value = parseStringToClass("123", Integer.class);
Здесь нет ничего необычного - это довольно распространенная подпись для любого анализатора и преобразователя.

Подробнее здесь: https://stackoverflow.com/questions/351 ... s-handling

Вернуться в «JAVA»