DateFormatがどうやったら使いやすくなるか

結局のところtry〜catchを書かないといけないということは、プログラムの書きにくさに直結します。
3行もコードが増えて、インデントがひとつ深まります。変数の定義が遠くtryブロックの外に追いやられたりもします。


ということで、例外を投げないparseメソッドがあれば、かなりプログラムが書きやすくなります。

Date parse(String source, Date defaultDate)

のようなメソッドを用意して、解析できなければdefaultDateを返してもらえるようになればありがたいのです。
ただ、この場合defaultDateにnullを指定するとparse(String source, ParsePosition pos)と区別が付かなくなってしまうので、メソッド名は別のものにする必要があります。
なので、こんなのが欲しいです。

Date parseDef(String source, Date defaultDate)


まあ、parseの話で言えば、本当に欲しいのはInteger.parseIntの例外不要版です。

static int parseIntDef(String source, int defaultValue)

というものを熱望します。


で、あと、ついでに例外不要版の個人的な要望でいえば、javax.swing.text.DocumentのinsertStringで末尾に追加するものですね。

try{
  doc.insertString(str, doc.getLength(), attr);
}catch(BadLocationException ex){
}

とか書いてたのが

doc.addString(str, attr);

とかければすごく幸せ。


と思ったらDocumentはインタフェースですか。結局AbstractDocumentクラスを継承することになるからインタフェースが分かれてる意味ぜんぜんないのに、インタフェース分けちゃってるから機能拡張できなくなったっていう、これもまたJavaによくありがちなパターン。
Documentにメソッド追加してもAbstractDocumentに実装追加しておけば誰も困らないと思うんですけどね。