0

indexOf()のサブクラスでメソッドをオーバーライドする方法を知りたいですArrayList。そのスーパーからプライベートelementData一時変数への同じアクセスを使用する必要があります。

どうすればデザインを解決できますか?

編集: elementData[i] への呼び出しを同様の this.get(i) に変更することは有効な解決策でしょうか(実際に許可されていますか?)。何らかの理由でロジックが破損したり壊れたりしますか?

4

2 に答える 2

5

基本的に、すべきではありません。とは異なる動作をするコレクションを作成したい場合は、代わりに合成を使用してくださいArrayList。の個人的な詳細はArrayList、正当な理由により非公開です。それらはバージョン間で変更される可能性のある実装の詳細であり、コードはそれらを気にするべきではありません。

(拡張が実際に有効なアプローチである可能ArrayList性はありますが、IMO である可能性は低いです。あなたは、あなたが本当に達成しようとしていることを語っていません。何が達成を妨げているのかだけです。全体像について詳しく教えていただければ、助かる可能性が高くなります。)

于 2012-08-01T17:03:59.497 に答える
1

ArrayList と同じメソッドを提供し、ArrayList 型のフィールドを持つコンテナーを作成できます (データ ストレージ用)。次に、すべての ArrayList メソッドをコンテナー クラスに追加します。これにより、オーバーライドするメソッドを除いて、ArrayList (フィールド) で対応するメソッドが実行されます。

于 2012-08-01T17:07:12.507 に答える