简体   繁体   English

如何在Groovy中实现抽象Java类?

[英]How to implement abstract Java class in Groovy?

I am trying to write some Spring code in Groovy from one of Spring's tutorials . 我正在尝试从Spring的教程之一用Groovy编写一些Spring代码。 When I write the following code in Groovy: 当我在Groovy中编写以下代码时:

Java 爪哇

@Component
public class SimpleCORSFilter implements Filter {

    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
        chain.doFilter(req, res);
    }

    public void init(FilterConfig filterConfig) {}

    public void destroy() {}

}

Groovy Groovy

@Component
class SimpleCORSFilter implements Filter {

    void doFilter(ServletRequest req, ServletResponse, FilterChain chain)
            throws IOException, ServletException {
        HttpServletResponse response = res as HttpServletResponse
        response.setHeader("Access-Control-Allow-Origin", "*")
        chain.doFilter(req, res)
    }

    void init (FilterConfig filterConfig) {}
    void destroy() {}
}

I get the following error 我收到以下错误

Can't have an abstract method in a non-abstract class. The class 'com.myproject.main.SimpleCORSFilter' must be declared abstract or the method 'void doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)' must be implemented.
 @ line X, column Y.
   @Component
   ^

Question

I have implemented the abstract doFilter method. 我已经实现了抽象的doFilter方法。 Why is it not valid? 为什么无效?

How can I fix this? 我怎样才能解决这个问题?

You have a syntax error here 您在这里有语法错误

void doFilter(ServletRequest req, ServletResponse, FilterChain chain)

Should be 应该

void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM