描述:使用Spring-Cloud-Getway的时候,想写一个全局过滤器,在实现AbstractGatewayFilterFactory下边的apply方法时候,发现在Java中正常编译的代码,转Kotlin后报错(类型不匹配),想问下是语法问题还是其他什么原因造成的呢?
运行环境:JDK(1.8), Kotlin(1.2.71), IDEA(2018.2)
异常:
Java代码(正常编译):
public class Test extends AbstractGatewayFilterFactory {
@Override
public GatewayFilter apply(Config config) {
return this::filter;
}
private Mono filter(ServerWebExchange exchange, GatewayFilterChain chain){
return chain.filter(exchange);
}
class Config{
}
}
Kotlin代码(this::filter报错):
class IgnoreGlobalFilterFactory : AbstractGatewayFilterFactory(Config::class.java) {
override fun apply(config: IgnoreGlobalFilterFactory.Config): GatewayFilter? {
return this::filter
}
fun filter(exchange: ServerWebExchange, chain: GatewayFilterChain): Mono? {
return chain.filter(exchange)
}
class Config
}