我想创建修改请求的自定义注释。所以创建这个注释。
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
boolean test() default true;
}
以及从HandlerInterceptorAdapter扩展的MyInceptor类。现在在这个类的preHndler方法中我想将处理程序强制转换为HandlerMethod。但是出现了一个异常。对于这个异常,我把一个条件“if(handler instanceof HandlerMethod)”但是处理程序没有强制转换为处理程序方法atall。 如何处理这个问题?
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler)
throws Exception {
MyAnnotation myAnnotation = null;
if (handler instanceof HandlerMethod) {
HandlerMethod handlerMethod = (HandlerMethod ) handler;
//other
}
}
更新 发生这种异常。
java.lang.ClassCastException: org.springframework.web.servlet.mvc.ParameterizableViewController cannot be cast to org.springframework.web.method.HandlerMethod