Я пытаюсь работать с Kotlin для Spring Integration с Java DSL.
Из ссылки Java DSL Spring Integration на GitHub https://github.com/spring-projects/spring-integration-java-dsl/wiki/spring-integration-java-dsl-reference#message-channels Я получил этот фрагмент кода:
@Bean
public MessageChannel publishSubscribe() {
return MessageChannels.publishSubscribe().get();
}
Когда я пытаюсь переписать это в Kotlin, это вызывает у меня некоторые проблемы:
Этот фрагмент кода ниже показывает ошибку Type inference failed: Not enough information to infer parameter S
@Bean
fun publishSubscribe(): MessageChannel {
return MessageChannels.publishSubscribe().get()
}
Этот фрагмент кода выдает ошибку:
Ошибка вывода типа: недостаточно информации длявыводить параметр S в удовольствие!> publishSubscribe (): PublishSubscribeChannelSpec!Пожалуйста, укажите это явно.
Поэтому я преобразовал это в это:
@Bean
fun publishSubscribe(): MessageChannel {
return MessageChannels.publishSubscribe<String>().get()
}
, который выдает следующую ошибку:
Тип аргумента нев его пределах:
Ожидаемый: PublishSubscribeChannelSpec!
Найдено: String`
Таким образом, логично было бы заменить код следующим образом:
@Bean
fun publishSubscribe(): MessageChannel {
return MessageChannels.publishSubscribe<PublishSubscribeChannelSpec<String!>!>().get()
}
Иэто следующая ошибка:
Kotlin: неожиданный токен Kotlin: неожиданный токен
Неожиданный токен здесь - восклицательный знак.
Так я могу заставить это работать?