我想在接口中声明一个方法,其中实现类中定义的方法的参数可以是特定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) {
...
}
}