今天遇到一个问题,同事问我,ifelse是一个整体,是写全好还是只写一个if好?
我的理接是,对于代码可读性来说,只写一个if比较直观,而且可读性也很强。但是今天我翻看springcloud的源码时发现
class反编译:
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
try {
......
if (!RequestContext.getCurrentContext().sendZuulResponse()) {
filterChain.doFilter(servletRequest, servletResponse);
} else {
try {
this.routing();
} catch (ZuulException var13) {
this.error(var13);
this.postRouting();
return;
}
try {
this.postRouting();
} catch (ZuulException var11) {
this.error(var11);
}
}
} catch (Throwable var14) {
this.error(new ZuulException(var14, 500, "UNCAUGHT_EXCEPTION_FROM_FILTER_" + var14.getClass().getName()));
} finally {
RequestContext.getCurrentContext().unset();
}
}
下载源码:
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
try {
......
// Only forward onto to the chain if a zuul response is not being sent
if (!RequestContext.getCurrentContext().sendZuulResponse()) {
filterChain.doFilter(servletRequest, servletResponse);
return;
}
try {
routing();
} catch (ZuulException e) {
error(e);
postRouting();
return;
}
try {
postRouting();
} catch (ZuulException e) {
error(e);
return;
}
} catch (Throwable e) {
error(new ZuulException(e, 500, "UNCAUGHT_EXCEPTION_FROM_FILTER_" + e.getClass().getName()));
} finally {
RequestContext.getCurrentContext().unset();
}
}
源码中else不见了,class文件中却有;
让读者看起来比较容易理解, 就是好的风格。
可能是反编译工具为了保证代码正确性加上的else;