標準のJDKバージョン(Runnable、Queueなど)を拡張しないカスタムインターフェイス(IRunnable、IQueueなど)で定義されたコンポーネントを含むJavaプロジェクトを管理する必要があります。 。)でも非常に似ています。 JUnitテストクラスやカスタムインターフェースを変更せずに(つまりデフォルトのものを拡張するために)一種の「設定ファイル/クラス」の中で、カスタムインターフェースを標準インターフェースにマップ/置換する方法があれば、誰にも分かりますか?Java - カスタムインターフェイスと標準インターフェイス間のマッピング
ありがとうございます。
EDIT 1:追加のサンプルコード
/* Custom interface */
public interface IRunnable {
public void run()
}
...その後、私は(書くことができるようにするためには、RunnableをタイプしてIRunnable型オブジェクトを「置換」する必要がテストコードに例):引数task
は、スケジューリングを実行するために)Runnable
(とないIRunnable
あるべき
IRunnable task;
(...some code to populate task...)
ScheduledFuture schedFut = Executors.newScheduledThreadPool(1).scheduleAtFixedRate(task, 1, 1, TimeUnit.SECONDS);
...。
EDIT 2:添加さらに明確化
IはMyAbstractClass
ためのJUnitテスト(または任意の関連する非抽象拡張)を書かなければならないと仮定する。
public abstract MyAbstractClass {
protected IRunnExec executor;
public abstract IRunnable job();
public final void execute() {
executor.schedule(job());
}
}
/* Custom interface */
public interface IRunnExec<Results> {
public Results schedule(IRunnable task)
}
元のインターフェースを維持するために最善のアプローチは何である(例えばIRunnable
、IRunnExec
)は、であり、インターフェイス/クラス(例えばRunnable
、ScheduledExecutorService
)(JDKによって提供される)標準を使用するように? カスタムインターフェイスごとに「アダプタ」を作成する必要がありますか?
詳細な具体的なコード例がないと、これはあまりにも抽象的な答えがありません。これらのnot-quite-JDKインタフェースのいずれかの完全な定義、どのように使用されているか、そして何を達成したいのかを示すサンプルコードを示してください。 –
なぜ否定的な投票ですか? –
あなたが本当に達成したいことを理解するのに十分な情報がここにないので、私は疑います。あなたが提供した例は、そのように働くことはできません。あるインタフェースを別のインタフェースに適合させるには、我々が持っていない両方のインタフェースの契約を詳細に理解する必要があります。これは[XY問題](http://xyproblem.info)です。 –