老师,下午好,请教一个问题,
public class LoginAdminGatewayFilter implements GatewayFilter, Ordered {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
....
if (token == null || token.isEmpty()) {
LOG.info("token为空,请求被拦截");
exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
return exchange.getResponse().setComplete();
}
...
}
}
请问一下老师,这里 exchange.getResponse() 的返回值 是interface ServerHttpResponse类型,为什么可以 .setStatusCode(HttpStatus.UNAUTHORIZED); 呢?
我知道老师你已经答过了,我也按照你的方法做了,还是不能解答我的疑问。
我的疑问是 exchange.getResponse() 的返回值 是interface, 而不是 class,这时是没办法实例化一个 interface的呀,怎么可以调用它的setStatusCode()呢, setStatusCode()方法还没有实现呀?
谢谢老师解答 !