библиотека преобразования Java, которая может обрабатывать универсальные типы? - PullRequest
0 голосов
/ 16 февраля 2012

Я ищу библиотеку Java для преобразования значений, которые поддерживают универсальные типы. То есть, если у меня Foo<T>, то библиотека должна поддерживать преобразование String в Foo<String> или Foo<Int>.

Конечно, учитывая класс, никто не может определить его общий компонент. Моя цель - заполнить бин строковыми значениями. Таким образом, свойства бина могут быть проверены на предмет информации об общем типе.

Ответы [ 2 ]

0 голосов
/ 28 марта 2012

Вот скелет решения:

public interface Converter {
    boolean canConvert(Class<?> sourceCls, Type targetType);

    Object convert(Object source, Class<?> sourceClass, Type targetType) throws CannotConvertException;
}

Обратите внимание, что тип источника - Class, но цель - Type. Если это Class, то код может быть делегирован одной из существующих библиотек. Если targetType является ParameterizedType, то из него можно получить аргументы типа (классы), тогда для преобразования в них можно использовать стандартные библиотеки.

Для использования:

  • для полей: Type targetType = field.getGenericType()
  • для методов установки: Type targetType = method.getGenericParameterTypes()[0]
0 голосов
/ 13 марта 2012

Ответ: такой библиотеки нет.

Кроме того, я не верю, что ее можно было бы создать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...