在Java接口中声明参数子类型,在Java实现方法中使用子类型

我想在接口中声明一个方法,其中实现类中定义的方法的参数可以是特定java类的子类型,例如:

interface Processor{
      processRequest( Request r);
}

public class SpecialRequest extends Request{...}

public class SpecialProcessor implements Processor{

      processRequest(SpecialRequest r){...}
}

但我在SpecialProcessor中遇到错误,因为它没有正确实现Processor接口.我可以在Processor接口中更改什么以允许SpecialProcessor中的定义工作?

解决方法:

您可以输入处理器:

public interface Processor<R extends Request> {
    void processRequest(R r);
}


public class SpecialProcessor implements Processor<SpecialRequest> {
    public void processRequest(SpecialRequest r) {
       ...
    }
}
上一篇:Java中没有“extends”关键字的继承


下一篇:POJ 2246 Matrix Chain Multiplication