Java
テストをしたいのに連携システムが起動していなくて単体でのテストができませんでした。テストをしにくいという設計上の問題点はおいといて、他システムと連携する部分をモックで差し替えて動かせないものかと、Javaのモックフレームワークを調べると、EasyM…
開発者のためのプログラミングQ&Aサイト stackoverflow の Hidden Features of Java というエントリに「Double Brace Initialization」という機能が載ってました。知らなかったので調べたことをまとめます。Double Brace Initialization はインスタンス初期…
Kind の Entity を削除したい時に、Dashboard からだとチマチマしか削除できないので全件削除する Servlet を書いた。 DataStoreCleaner が DataStore にアクセスして Entity の削除を行うクラス。 DataStoreCleanServlet が Servlet。 TaskQueue を使って E…
最近知ったこと。 いや、『Java魂』(O'REILLY)を読んだから知ってるはずだけど忘れていた事実。 public static final String HOGE = "hoge";のような定数への参照は、コンパイル時にバイナリファイルにインライン展開される。 (HOGE を参照している箇所は…
RSS2.0 の pubDate はこんな感じ。 <pubDate>Tue, 22 Sep 2009 19:24:08 +0900</pubDate> 曜日と月は US ロケールの文字列。 "+0900" は RFC820フォーマットのタイムゾーン解析文字 Z で解析する。 import java.text.DateFormat; import java.text.ParseException; import java.…
System.setOut(PrintStream out) で標準出力の出力先を変更できる。 JTextArea に転送するような PrintStream を作れば、JTextArea がコンソール代わりに。 JTextArea に出力する際は、Swing のイベントディスパッチスレッドにのせる必要がある。 import jav…
super() はコンストラクタの1行目で記述しなければならないが、 親クラスのコンストラクタを呼ぶ際に複雑な処理を行いたい場合は static のヘルパメソッドを使う。 public class Derived extends Thread { public Derived() { super(createString()); // 親…
instanceof で null が渡された場合は false になることが言語仕様で保証されている。 if (obj instanceof String) { // ここでは obj は null ではない。 }
ジェネリクス(総称型)を使ったメソッド。リストの最後の要素を返す。 public static E last(List list) { return list.get(list.size() - 1); }戻り値の前の がポイント。