我想定义一个接口(interface),例如

public interface Visitor <ArgType, ResultType, SelfDefinedException> {
     public ResultType visitProgram(Program prog, ArgType arg) throws SelfDefinedException;
     //...
}

在实现过程中,selfDefinedException有所不同。 (selfDefinedException暂时为通用未定义)
有没有办法做到这一点?

谢谢

最佳答案

您只需要限制异常类型以使其适合抛出即可。例如:

interface Visitor<ArgType, ResultType, ExceptionType extends Throwable> {
    ResultType visitProgram(String prog, ArgType arg) throws ExceptionType;
}

也许:
interface Visitor<ArgType, ResultType, ExceptionType extends Exception> {
    ResultType visitProgram(String prog, ArgType arg) throws ExceptionType;
}

10-07 20:33