调用未在 Java 中实现的接口函数



我在理解使用接口函数的代码时遇到问题,但我似乎找不到它的实现。是否可以调用未实现的接口函数?代码如下,调用未实现函数的类组合结果:

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((;

调用,即运行时的实现类方法。

最新更新