Java实现接口代码转Kotlin报错

发布于 2022-01-06 23:02:06 字数 1195 浏览 931 评论 2

描述:使用Spring-Cloud-Getway的时候,想写一个全局过滤器,在实现AbstractGatewayFilterFactory下边的apply方法时候,发现在Java中正常编译的代码,转Kotlin后报错(类型不匹配),想问下是语法问题还是其他什么原因造成的呢?

运行环境:JDK(1.8), Kotlin(1.2.71), IDEA(2018.2)

异常:

Java代码(正常编译):

public class Test extends AbstractGatewayFilterFactory<Test.Config> {

    @Override
    public GatewayFilter apply(Config config) {
        return this::filter;
    }

    private Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain){
        return chain.filter(exchange);
    }

    class Config{

    }
}

Kotlin代码(this::filter报错):

class IgnoreGlobalFilterFactory : AbstractGatewayFilterFactory<IgnoreGlobalFilterFactory.Config>(Config::class.java) {

    override fun apply(config: IgnoreGlobalFilterFactory.Config): GatewayFilter? {
        return this::filter
    }

    fun filter(exchange: ServerWebExchange, chain: GatewayFilterChain): Mono<Void>? {
        return chain.filter(exchange)
    }

    class Config
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你曾走过我的故事 2022-01-07 16:10:12

引用来自“xiaolei123”的评论

兄弟搞笑了,那么完美的转换,那你直接用world写中文需求,然后一键转换成代码不就完了?

累赘 2022-01-07 09:08:14

语法有问题kotlin双冒号跟java不一样需要手动改造

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文