(アンドロイドアプリで)モジュールを作成したばかりで、誰も利用できないのでライブラリとして共有したいと考えています。それを動作させるためユーザーに静的メソッドを実装させる
、ユーザは2つの静的メソッドを持つクラスを提供する必要がある:
- 一つ
static Fragment newInstance(arg1, arg2)
であり、そしてIは、引数の数とタイプを設定する必要があり、 - 及び第二であります私がフラグメント内で呼び出す
static MyModel getModel()
。
ユーザーがモジュールのメインクラスをインスタンス化すると、ユーザーは引き渡されるクラスmFragmentClass
を引数として指定します。私は、静的メソッドを呼び出すためにリフレクションを使用します。
Method m = mFragmentClass.getDeclaredMethod("newInstance", int.class, int.class);
return (Fragment) m.invoke(null, mParent, position);
newInstance(mParent, position)
方法は、パターンによる静的であり、そしてそれは私のモデルは絶対にparcelableではないので、静的である必要がありますので、getModel()
は、断片内と呼ばれています。
しかし、静的メソッドは抽象的でもインタフェースでもないので、ユーザーにこれらのメソッドを実装させるにはどうすればよいですか?
EDIT:インターフェイスに静的メソッドを置くことはできますが、定義する必要があります。ユーザーがそのメソッドをオーバーライドする必要があります。
申し訳ありませんが、* "それを動作させるには、後でリフレクションを使用して呼び出す2つの静的メソッドをクラスに提供する必要があります。" *彼のライブラリには好きなように聞こえません。 – Tom
はい、もちろんですが、今回はあまり選択肢がありません...後で私はより良いプログラマです。実際、私はまだReadme.mdで説明することができますが、私はそれをきれいにしたいと思います。 –
なぜ静的にする必要がありますか? –