如何将I
接口Parser
的{{1}}连接到validate
方法参数类型?
public interface Parser<R, I> {
R parse(I... input);
interface Validator {
boolean validate(I... content);
}
}
现在,我收到一个错误:
`my.pack.Parser this`: cannot be referenced from a static context
UPD
如果我向Validator界面添加<I>
类型,我仍然没有类型关系。
Parser<String, String> p = new Parser<String, String>() {
@Override
public String parse(String... input) {
Validator<Integer> v = new Validator<Integer>() {
@Override
public boolean validate(Integer... content) {
return false;
}
};
return null;
}
};
在我的示例中,Validator的类型应与Parser中的相同 - String
,而不是Integer
。
答案 0 :(得分:1)
您必须将类型I指定为Validator接口的通用参数,因为内部接口始终是静态的,因此Validator无法访问未为接口Parser定义的I,但仅在您实例化它时。