[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re: Javaの開発生産性について
前橋です。
高橋さん:
>JDK1.0.2の頃だと、add("North", titleLabel); なんて書き方
>してましたね。よくスペルミスして"Norht"とやって、コンパイル
>でエラー検知されず、なかなか原因に気付かないことがありました。
そうですよね。文字列だと、コンパイル時にエラーを検出できませ
んよね。
Xtだと、各Widget(AWTでいうところのComponent)の属性を、文字列
で指定するわけですが(これは、リソースファイルなどから実行時
に取得できるようにするため。リフレクションのないCではしょう
がない)、そのための文字列は、全て #define でこんなふうに覆わ
れています。
#define XtNleftBitmap "leftBitmap"
その理由が、「エラーをコンパイル時に検出してもらうため」と知っ
たとき、「おーなるほどー」と思った記憶があります。
BorderLayoutでも、せめて、
↓↓ここから↓↓ここから↓↓ここから↓↓ここから↓↓
public void addLayoutComponent(String name, Component comp) {
if ("Center".equals(name)) {
center = comp;
} else if ("North".equals(name)) {
north = comp;
} else if ("South".equals(name)) {
south = comp;
} else if ("East".equals(name)) {
east = comp;
} else if ("West".equals(name)) {
west = comp;
}
}
↑↑ここまで↑↑ここまで↑↑ここまで↑↑ここまで↑↑
この else if の最後に else をひとつくっつけて、そこで例外を
投げるなり、画面に花火でも打ち上げるなり、轟音をたててクラッ
シュするなりしてくれれば、バグの特定は楽になるでしょうにねえ。
# そういう「防衛的プログラミング」をする人は、はじめから
# 文字列渡したりしないか。
------------------------------------------------------------
前橋 和弥 maebashi@xxxxxxxxxx
中部ソフトエンジニアリング(株)
〒450 名古屋市中村区名駅4-10-25(名駅IMAIビル 5F)
Tel:(052)583-4511(代) 内線 252 Fax:(052)583-4566
------------------------------------------------------------