Java generi c преобразование типа как в - PullRequest
0 голосов
/ 08 апреля 2020

Есть ли способ в java преобразовать тип

из: <Object, Object>

в: <String, String>

или

из : <String, String>

до: <Object, Object>

У меня есть значение от ConcurrentKafkaListenerContainerFactory<Object, Object> до ConcurrentKafkaListenerContainerFactory<String, String>

1 Ответ

2 голосов
/ 08 апреля 2020

Вы должны использовать промежуточный тип сырья. Вот пример преобразования Object в String. Обратное преобразование будет выглядеть идентично.

static ConcurrentKafkaListenerContainerFactory<Object, Object> stringFactoryToObjectFactory(
        ConcurrentKafkaListenerContainerFactory<String, String> stringFactory) {
    @SuppressWarnings("rawtypes")
    ConcurrentKafkaListenerContainerFactory rawTypeFactory = stringFactory;
    @SuppressWarnings("unchecked")
    ConcurrentKafkaListenerContainerFactory<Object, Object> objectFactory = rawTypeFactory;
    return objectFactory;
}

Конечно, это нарушает безопасность типов и ClassCastException произойдет во время выполнения, если эти фабрики будут использовать разные типы.

...