メモの日々


2009年02月04日(水) [長年日記]

[etc] メイルの管理

職場でメンバーがメイルソフトを操作している場面を見ることがあるが、メイル一覧をスレッド表示している人は皆無。皆フラットにメイルを並べている。高機能メイルソフトを使っているのに、なんでかな。

なので、返信の元になったメイルを見たい時になかなか見つけられなくて滑稽。どうも、返信の元になったメイルを見る、ということはあまりしなくて、引用部分から過去のメイルの内容を読み取ろうとするみたい。だからみんな全文引用するのかも。全文引用の部分なんか読みにくくてやってられないと思うのだけれど。

[java] Listの初期化

ArrayListなどの初期化は次のように書けるのでメモ。

package sample;

import java.util.ArrayList;
import java.util.List;

public class ListSample {
    public static void main(String[] args) {
        List<String> strings = new ArrayList<String>() {
            {
                add("one");
                add("two");
                add("three");
            }
        };

        System.out.println(strings); //=> [one, two, three]
    }
}

ArrayListを継承した無名クラスを作って、その初期化ブロックで要素を追加している。

初期化ブロックはコンストラクタより先に実行されるのでそこでadd()メソッドを呼び出すのは問題があるのでは、と思ったが、add()はスーパークラスのメソッドで、初期化ブロックより先にスーパークラスのコンストラクタが実行されるので、問題はなさそう。

ええと、よく考えると上の例なら

Arrays.asList(new String[] {"one", "two", "three"});

でも実現できてこっちの方が簡潔かも。Mapなら上の書き方が便利なのかなあ。

ああ、今どきは

Arrays.asList("one", "two", "three");

と書けるのであった。