私はinterface method
を同じライブラリのメソッドで呼び出されています。実装は、ライブラリを含むアプリケーションに含まれています。実装はアプリケーションごとに異なります。 interface method
を呼び出すには、calling method
はinterface
のインスタンスをclass
でインスタンス化する必要があります。しかし、calling method
はライブラリにあるため、アプリケーションのクラスにアクセスすることはできません。 calling method
は、アプリケーションではなく、バックグラウンドサービスによって起動されます。ライブラリ内のインターフェイス、異なるアプリケーション内の実装、ライブラリからのメソッド呼び出し
ライブラリ内のインタフェース:
クラスインターフェースを実装するアプリケーションで:
public class ClassA implements InterfaceA {
@Override
public void methodA() {
// do something
}
}
インタフェースメソッドを呼び出すライブラリにおける方法
public void callInterface() {
InterfaceA ia;
ia.methodA(); // how to get this to work?
}
interface method
をライブラリに呼び出すにはどうすればいいですか? e interface
アプリケーションに実装されていますか?実装クラスはライブラリにアクセスできないアプリケーション内にあるため、私はライブラリからインターフェイスをインスタンス化できません。
ライブラリに実装されているものが存在しないか、メソッド "callInterface"がステートレス実装の一部であることが間違っています。その場合、インプリメンテーションは入力として、またはGenericsを使用してメソッドに渡されます。メソッドを呼び出すライブラリクラスの詳細を明らかにしてください。 – shakeel
@shakeelライブラリには実装がありません。それが問題です。ライブラリクラスは、どの実装クラスにもアクセスすることができません。 – khateeb