Generics Spring集成Kotlin DSL MessageChannel.publishSubscribe
我正试图与Kotlin合作,实现Spring与JavaDSL的集成 从GitHub上的Spring Integration Java DSL参考中,我得到了以下代码片段:Generics Spring集成Kotlin DSL MessageChannel.publishSubscribe,generics,kotlin,spring-integration-dsl,Generics,Kotlin,Spring Integration Dsl,我正试图与Kotlin合作,实现Spring与JavaDSL的集成 从GitHub上的Spring Integration Java DSL参考中,我得到了以下代码片段: @Bean public MessageChannel publishSubscribe() { return MessageChannels.publishSubscribe().get(); } 当我试图在Kotlin中重写这篇文章时,它给了我一些问题: 下面的代码段显示了一个错误类型推断失败:没有足够的信息来
@Bean
public MessageChannel publishSubscribe() {
return MessageChannels.publishSubscribe().get();
}
当我试图在Kotlin中重写这篇文章时,它给了我一些问题:
下面的代码段显示了一个错误类型推断失败:没有足够的信息来推断参数S
@Bean
fun publishSubscribe(): MessageChannel {
return MessageChannels.publishSubscribe().get()
}
此代码段引发错误:
类型推断失败:没有足够的信息来推断fun中的参数S!>publishSubscribe():PublishSubscribeChannelSpec!
请明确指定它
因此我将其转换为:
@Bean
fun publishSubscribe(): MessageChannel {
return MessageChannels.publishSubscribe<String>().get()
}
@Bean
fun publishSubscribe():MessageChannel{
return MessageChannels.publishSubscribe().get()
}
这将引发以下错误:
类型参数不在其范围内:期望:PublishSubscribeChannelSpec
找到:字符串` 因此,合乎逻辑的做法是替换如下代码:
@Bean
fun publishSubscribe(): MessageChannel {
return MessageChannels.publishSubscribe<PublishSubscribeChannelSpec<String!>!>().get()
}
@Bean
fun publishSubscribe():MessageChannel{
return MessageChannels.publishSubscribe().get()
}
这是下一个错误:
Kotlin:意外的令牌
Kotlin:意外的令牌
这里的意外标记是感叹号
那么,我可以让它工作吗?我不知道从您发布此问题到现在可能发生了什么变化,但您的第一个没有类型的示例对我来说很好。