我在理解使用接口函数的代码时遇到问题,但我似乎找不到它的实现。是否可以调用未实现的接口函数?代码如下,调用未实现函数的类组合结果:
public final class Parallel {
public static <T> T For(int start, int end,
ParallelForDelegate<T> delegate, T input) {
T res = null;
for (int i = start; i < end; i++) {
res = delegate.combineResults(res, delegate.delegate(i, input));
}
return res;
}
}
界面:
public interface ParallelForDelegate<T> {
public T delegate(int i, T input);
public T combineResults(T result1, T result2);
}
参考:https://www.programcreek.com/java-api-examples/index.php?source_dir=SecugenPlugin-master/src/sourceafis/simple/Fingerprint.java#
必须在某个地方有一个实现,但有时你可能很难找到它,因为各种工厂、依赖注入、"即时"构建......机械主义
在像Hibernate这样的复杂API上,它可能很乏味。但是,该接口应该为您提供有关其用法的足够详细信息,因此您实际上不必知道它是如何实现的。
在方法中
public static T For(int start, int end, ParallelForDelegate 委托,T 输入(
的并行类,您将 ParallelForDelegate 作为参考,因此,您可以调用 ParallelForDelegate 接口的方法。关键是,当你调用 For (-,-,-,-( 方法时,你必须传递 ParallelForDelegate 接口的实现类对象。所以
delegate.combineResults(res, delegate.delegate(i, input((;
调用,即运行时的实现类方法。