Java实现接口代码转Kotlin报错
描述:使用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
引用来自“xiaolei123”的评论
兄弟搞笑了,那么完美的转换,那你直接用world写中文需求,然后一键转换成代码不就完了?
语法有问题kotlin双冒号跟java不一样需要手动改造