3

最近、私はしばしば次のようなJavaコードを読まなければなりません。

LinkedHashMap<String, Integer> totals =  new LinkedHashMap<String, Integer>(listOfRows.get(0))
for (LinkedHashMap<String, Integer> row : (ArrayList<LinkedHashMap<String,Integer>>) table.getValue()) {    
    for(Entry<String, Integer> elem : row.entrySet()) {
        String colName=elem.getKey();
        int Value=elem.getValue();
        int oldValue=totals.get(colName);

        int sum = Value + oldValue;
        totals.put(colName, sum);
    }
}

長くネストされた型定義のため、単純なアルゴリズムはかなりあいまいになります。そのため、IDEで型定義を削除または折りたたんで、次のような型のないJavaコードを表示できるようにしたいと思いました。

totals =  new (listOfRows.get(0))
for (row : table.getValue()) {    
    for(elem : row.entrySet()) {
        colName=elem.getKey();
        Value=elem.getValue();
        oldValue=totals.get(colName);

        sum = Value + oldValue;
        totals.put(colName, sum);
    }
}

もちろん、タイプ定義を折りたたむのが最善の方法ですが、変数の上にマウスを移動すると、タイプがツールチップとして表示されます。これを実行できるJavaIDEまたはIDE用のプラグインはありますか?

4

1 に答える 1

5

IntelliJ IDEAは、宣言の右側のタイプをに変換します<~>。となることによって:

Map<Integer, String> m = new HashMap<Integer, String>();

次のように折りたたまれて表示されます:

Map<Integer, String> m = new HashMap<~>();

これは、エディター/コード折り畳み/ジェネリックコンストラクターおよびメソッドパラメータープロパティを介して設定可能であり、IDEのコミ​​ュニティエディションは無料です。


または、型推論を持つScala を使用することもできます。

val totals = new mutable.Map[String, Int]
for { 
    row <- table.getValue
    (colName, value) <- row.entrySet 
} totals += (colName -> (value + totals.get(colName) getOrElse 0)
于 2010-12-31T12:17:39.260 に答える