Недавно натолкнулся на случай, когда мне нужны предварительные, но настраиваемые типы (длинная история).Обычно я делаю это
Type t = new TypeToken<ArrayList<Integer>>() {}.getType();
Я хотел бы поместить эту правую сторону в мой файл свойств пружины и либо выполнить вызов, подобный следующему:
Type t = env.getProperty("type-property");
Или использовать @ConfigurationProperties.
Обычно я работаю с @ConfigurationProperties, но в репо, в котором я нахожусь, его нет.Я мог бы сделать так, чтобы зависимости вытягивались, если первый путь просто невозможен, но путь наименьшего сопротивления предпочтителен.
Я пробовал некоторые варианты следующего определения свойства с угловыми скобками, круглыми скобкамии квадратные скобки - ничего не получилось.
type-property=java.util.ArrayList<java.lang.Integer>
Мне было трудно получить что-нибудь полезное с типами поисковых терминов, которые вы вынуждены использовать для этой проблемы.Я нашел этот связанный вопрос, но мне не повезло, что я перевел его в не-xml конфигурацию (я не могу также сделать стиль xml в этом проекте).ссылка: Создать конфигурацию Guava TypeToken в Spring xml?
РЕДАКТИРОВАТЬ: Используя ответ, предоставленный @LppEdd, я использовал следующие вызовы для де / сериализации:
Type sampleType = new TypeToken<HashSet<ArrayList<Integer>>>() {}.getType();
// serialize via java.lang.reflect.Type.getTypeName()
String serializedType = sampleType.getTypeName();
// above string value is "java.util.HashSet<java.util.ArrayList<java.lang.Integer>>"
// deserialize via org.eclipse.jetty.util.TypeUtil.fromName(String name)
Type sampleTypeAgain = TypeUtil.fromName(serializedType);