さまざまな種類のメディア プレーヤーで使用されるライブラリを実装しています。getPosition
個々のユーザーのビデオ プレーヤーごとに異なる方法を使用する必要があります。
現在、これを達成するために、ライブラリを抽象クラスにして、ユーザーが拡張しgetPosition
、メディアプレーヤーの位置を取得するために使用するオブジェクト/メソッドでメソッドをオーバーライドする必要があります。
クラスを抽象化する必要がなく、抽象クラスを拡張することなくライブラリにこのメソッドを定義できるようにしようとしていますgetPosition
(つまり、ライブラリクラスを抽象化したくありません)。
リフレクションの使用を検討しましたが、実行時までクラス名/メソッド名/パラメーターがわからず、メディアプレーヤーオブジェクトの特定のインスタンスの位置が必要なため、最新の位置を取得できるため、苦労しています.
Java/Android プログラミング パラダイムのグッド プラクティスは何ですか?
反射は進むべき道ですか?もしそうなら、この特定のインスタンスのサンプルコードを見ることができますか(インポートしたライブラリで使用される不明なクラス名/メソッド名/パラメーターなど...)
または、これを達成するためのより良い方法はありますか/クラスを抽象化して Java に移行する方法はありますか?
繰り返しになりますが、ユーザーがクラスを拡張する必要がなく、オブジェクトに対して何らかの setGetPosition() メソッドを呼び出すだけでよいと思います。
編集: 簡単に言えば: ライブラリで未知のクラスの getPosition メソッドを使用できるようにしたいが、クラス全体を抽象化したくない