2009-01-01から1年間の記事一覧

定数フィールドへの参照はコンパイル時にバイナリに展開される

最近知ったこと。 いや、『Java魂』(O'REILLY)を読んだから知ってるはずだけど忘れていた事実。 public static final String HOGE = "hoge";のような定数への参照は、コンパイル時にバイナリファイルにインライン展開される。 (HOGE を参照している箇所は…

プログラミング&セキュリティキャンプ・キャラバン2009(東京)

参加してきました。勉強会初参加。いや〜、刺激になりました〜。業務でWebアプリの開発してるけど、閉じられたネットワークで動いてるシステムなんで、セキュリティ詳しくありません。一番考えさせられたのが、クラウドとか Web API を使ったサービスを提供…

Objectに定義されているメソッドの実装を強制する

Object#hashCode(), Object#equals() などのメソッドは抽象クラスの抽象メソッドとして定義できる。 public abstract class MyAbstractClass { public abstract int hashCode(); public abstract boolean equals(Object obj); }上記のクラスを継承したら、ha…

RSS2.0 の pubDate フォーマットの日付時刻を SimpleDateFormat で解析する。

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.…

csh で "<>" は否定演算子!?

打ち合わせで見た csh のコード if ( 1 <> $status ) thenそれは SQL の not equal でんがな。よくよく聞いてみるとこのコードは動いたらしい。マジっすか!?mac で動かしてみた。 if ( 1 <> $1 ) then echo 'true' else echo 'false' endif動く。シンタッ…

標準出力を JTextArea に出力する

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 チェック

instanceof で null が渡された場合は false になることが言語仕様で保証されている。 if (obj instanceof String) { // ここでは obj は null ではない。 }

ジェネリクス(総称型)を使ったメソッド。

ジェネリクス(総称型)を使ったメソッド。リストの最後の要素を返す。 public static E last(List list) { return list.get(list.size() - 1); }戻り値の前の がポイント。