gpt4 book ai didi

Java:如何使接口(interface)类型互连?

转载 作者:行者123 更新时间:2023-12-01 11:39:56 26 4
gpt4 key购买 nike

如何连接类型 I接口(interface)Parservalidate方法参数类型?

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

如果我添加类型<I>到我的 validator 接口(interface),我仍然没有类型关系。

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 的类型应与解析器中的类型相同 - String ,但不是Integer .

最佳答案

您必须将类型 I 指定为 Validator 接口(interface)的泛型参数,因为内部接口(interface)始终是静态的,因此 Validator 无法访问未为接口(interface) Parser 定义的 I,而只能在实例化它时访问。

关于Java:如何使接口(interface)类型互连?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29610321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com