为什么下面的代码片段没有抛出任何编译错误?我还没有实例化界面选择器。
public interface Selector {
public boolean pick(int value);
}
public static int totalValues(List<Integer> values, Selector selector) {
int result = 0;
for (int i : values) {
if(selector.pick(i)) {
result += i;
}
}
return result;
}
我错过了什么基本的东西?提前谢谢。
答案 0 :(得分:0)
您不会收到编译器错误。你对界面的编程,这很好。 totalValues
的调用者必须传递Selector的实现。就像他将通过List的实现一样。
你基本上说“如果你告诉我如何'选择'要包括在总数中的值,我会创建总值。”