描述:使用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
}
语法有问题kotlin双冒号跟java不一样需要手动改造
<p>兄弟搞笑了,那么完美的转换,那你直接用world写中文需求,然后一键转换成代码不就完了?</p>
<div class="ref">
兄弟搞笑了,那么完美的转换,那你直接用world写中文需求,然后一键转换成代码不就完了?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。