0

HashMap を変数として定義したという問題がありますが、拡張性を高めるためにクラスを使用する必要がありました。

Eclipseにリファクタリングしてもらいたい

HashMap<String, Integer> result

変数を結果クラスの型に変換し、それを拡張できます。HashMapプロジェクト全体で が使用されていることを考えると、どうすればこれを達成できますか?

HashMap結果をではなく、オブジェクトにしたいと考えています。

public class result {
     HashMap<String, Integer> res;
     public void setres(String res, int res) {

     }
}
4

2 に答える 2

0

Carl Manasterの答えは絶対に正しいですが、HashMap自体を拡張する別のアプローチをお勧めします。したがって、コンストラクターを書き直すだけで、すべての HashMap メソッドをオーバーライドできます。必要な他のフィールドやカスタム メソッドを追加することもできます。

まず、次のようなクラスを作成します。

class ResultHashMap extends HashMap<String, Integer> {
 //Add all your customization here        
}

次に、次のすべての出現を置き換えます。

HashMap<String, Integer> reslut = new HashMap<String, Integer>();

に:

ResultHashMap result = new ResultHashMap();
于 2015-07-27T18:55:35.807 に答える
0

交換を開始するだけです。独自の HashMap フィールドを持つクラスを作成し、コードのどこかで HashMap を YourClass に置き換えます。これで、クラスが (HashMap) メソッドを実装していない場所に赤い下線が表示されます。QuickFix を使用して欠落しているメソッドを作成し、(短期間) 呼び出しを直接フィールドに委任します。たとえば、HashMap を必要とするメソッドに YourClass を渡す場所に、別の下線が表示されます。メソッドが YourClass を期待するように QuickFix し、そこにあるバグを修正します。完了するまで繰り返します。

于 2013-03-06T17:09:40.003 に答える