J2MEポーランド語のバイナリでクラスをオーバーライドするにはどうすればよいですか?
-
04-07-2019 - |
質問
J2MEポーランド語のUIコンポーネントを使用しています。コードに単純なバグを見つけたので、すぐに修正したいのですが、ソースコードは含まれていますが、ダウンロードパッケージにビルドスクリプトが見つかりません。
プライベートアクセスを持つメンバーが関係するため、クラスを拡張しても問題を解決できません。
修正するにはどうすればよいですか?問題のクラスをJavacで単にコンパイルする必要がありますか、それともリポジトリ内のビルドスクリプトを見つけようとする必要がありますか?
解決
J2MEPolish UIライブラリのバイナリコードはありません。これらのクラスもアプリケーションのコンパイル中に前処理されるためです。これが、J2MEPolish UIパーツ用のビルドスクリプトも存在しない理由です。結果のバイナリは、コンパイルしても意味がありません:)
このUIクラスを直接使用している場合(ポーランドの魔法は関係ありません)、それを自分のプロジェクトにコピーし、そこで変更を加えることをお勧めします。
しかし、小さな問題があります。 100%確信はありませんが、ポーランド語のビルドプロセスは次のとおりです。最初にクラスを前処理し、次にポーランド語のクラスを前処理します。プロジェクトにコピーしたUIコンポーネントが同じJavaパッケージにとどまる場合、バグのあるポーランドの実装によって変更が上書きされる可能性があります。これを確認するには、アプリケーションを実行するか、ビルドディレクトリの最終的なJavaコードを確認します。
上書きの問題が発生した場合は、2つのオプションがあります-プロジェクトのUIクラスを別のパッケージに移動する(直接使用する場合はこれで問題ないはずです)、またはポーランド語のビルドプロセスを変更する必要がある場合、最初にポーランド語のクラスを前処理し、それによって行われた変更を上書きできるようにします。
/ JaanusSiim
他のヒント
この質問は回答され受け入れられましたが、組み込みのプロパティを使用する方が簡単な方法です(マジック検索エンジン経由でここにアクセスする場合)
polish.client.source=/projecthome/j2me-polish-source
これは、インストーラーでパッケージ化されたソースの単なるコピーです。これを独自のソースツリーにコピーして、変更のバージョン履歴を保持できます。
JaanusSiimのメソッドは機能するかもしれませんが、de.enough。**パッケージを自分のソースツリーに含めると混乱するため、お勧めしません。通常、個人用ソースと src-j2mepolish
のソースファイルの場合、これは標準バージョンに追加した内容が非常に明確でした。