【问题标题】:cannot create SubscribableChannel in Kotlin无法在 Kotlin 中创建 SubscribableChannel
【发布时间】:2018-10-12 20:13:05
【问题描述】:

这适用于 Java:

SubscribableChannel c = MessageChannels.publishSubscribe().get();

转换为 kotlin(通过 IntelliJ)变成:

val c : SubscribableChannel = MessageChannels.publishSubscribe<S>().get()

我找不到可以满足“S”要求的类型

签名或发布订阅为:

public static <S extends PublishSubscribeChannelSpec<S>> PublishSubscribeChannelSpec<S> publishSubscribe() 

S递归依赖S时,什么可以满足&lt;S extends PublishSubscribeChannelSpec&lt;S&gt;&gt;

为什么这对 Java 来说不是问题?

【问题讨论】:

    标签: spring-boot kotlin


    【解决方案1】:

    你可以这样称呼它:

    val c: SubscribableChannel = MessageChannels.publishSubscribe<PublishSubscribeSpec>().get()
    

    为什么它在没有 Java 类型的情况下工作我不知道。我的猜测是 Java 能够推断类型,但我不知道为什么 Kotlin 不能这样做。

    【讨论】:

    • 是的,这是编译干净的 - 但是我发现 FluxMessageChannel 更适合我的需要 - 无论如何谢谢 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    相关资源
    最近更新 更多