沒有重寫接口方法,IDEA沒有報錯。


今天在IDEA寫攔截器的時候遇到點困惑,繼承了HandlerInterceptor沒有報錯,我一直認為他會提醒,要重寫方法。如下圖

通過查資料,嗯,終於找到原因來,先來上HandlerInterceptor接口的源碼

public interface HandlerInterceptor {

	default boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		return true;
	}

	default void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			@Nullable ModelAndView modelAndView) throws Exception {
	}
	
	default void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
			@Nullable Exception ex) throws Exception {
	}
}

敲一敲黑板,重點來了

以上是HandlerInterceptor 接口的源碼,可以看到高版本的spring-webmvc jar包中,HandlerInterceptor 接口定義的是默認方法,這是jdk1.8的新特性,也就是說接口中的方法你重寫也可以,不重寫也不會報錯。

所以所這里並不會提醒你重寫,你要自己去手動寫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM