もしこのブログがお役に立ちましたら、次回のAmazonでのお買い物時に こちらのリンクから 購入していただけますと嬉しく思います。

2010年3月15日

JavaのGenericsへの要望

ずっと開発に関わっているあるJavaベースのWebアプリがあるのですが、数ヶ月前にJREが1.4から5.0にアップデートされました。
今まで1.4準拠の構文ばかり使ってきたのですが、そろそろ5.0以降の構文にも慣れていかないといけないなぁと思い、今日試してみました。
Genericsを意識して使ってみたのですが、「型引数」を指定できるのは確かにバグを減らす効果があると思います。
ただ、「型引数」の影響範囲がsetterやgetterの類だけなのはいただけません。
例えば、ちょっと長いですが以下のようなコードを書いた場合です。

/**
* 標準入力を一行ずつ読み込み、足し算を行う
*/
public static void main(String[] args) {
// Listに型引数としてIntegerを指定する
List<Integer> inputNumbers = new ArrayList<Integer>();

Scanner scanner = new Scanner(System.in);
// 標準入力を一行ずつ読み込む
while (scanner.hasNext()) {
String inputText = scanner.next();
// "exit"と入力されたら標準入力の読み込みを終了する
if ("exit".equals(inputText)) {
break;
}
try {
// 数字の入力の場合のみListに追加する
inputNumbers.add(Integer.parseInt(inputText));
} catch (NumberFormatException e) {
System.out.println("数字を入力してください");
}
}

// ListにString変数の追加を試みる
inputNumbers.add("1"); // ←コンパイルエラー

// ListにStringの"1"が含まれるかチェックする
if (inputNumbers.contains("1")) { // ←コンパイルが通る
System.out.println("文字列の1が入力されました"); // ←このコードが実行されることはあり得ない
}

// ListにIntegerの"1"が含まれるかチェックする
if (inputNumbers.contains(1)) {
System.out.println("数値の1が入力されました"); // ←このコードが実行されることはあり得る
}

int sum = 0;
for (int number : inputNumbers) {
sum += number;
}
System.out.println("合計値 : " + sum);
}


25行目はコンパイルエラーが出るにも関わらず、28行目のコードは問題ありません。
例えば稀な例かも知れませんが、DBから読み出した数値をString型のまま扱ってしまった場合に、ListやMapの存在チェックのメソッドにその変数を渡してもtrueが返らない、なんてことが考えられます。
もし上の例の28行目のような場面でコンパイルエラーが出ればそのようなバグは防げます。
調べたところJava6.0でも同じ仕様のようですので、今後のバージョンでどうなるか見守りたいです。

2010年3月12日

今日の単語

今日、中国人の友人との会話で出てきた単語です。

《兼顾》
「双方(各方面)に気を配る」という意味で、動詞として使えるようです。
次のように使います。
《我们要兼顾身心两方面。》
「私達は体と心の両方に気を配らなければならない。」
《坚固》と声調も発音も同じなので注意する必要があります。

《纯粹》
「純粋な。全く」という意味があります。
性格を表現する時に使えるか聞いたところ、その場合は《纯洁》を使うそうです。
《纯粹》は以下のように使えるとのことでした。
《他的房间纯粹是个垃圾箱。》
「彼の部屋はまるでゴミ箱のようだ。」
友人曰く、意味合いは《好像》と《肯定》の中間だそうです。
なので日本語の「まるで~のようだ」よりももう少し強い語調かもしれません。

微妙なニュアンスを中国語の説明だけを聞いて理解するのは難しいものです。。。

2010年3月10日

ホットコーラ

春節明けというのにこちらは寒い日が続いています。
昨日は風も強くて、体感温度は昼間でも氷点下だったと思います!?(そういえば体感温度ってどうやって測るんでしょう??)
今日は日差しがあるので昨日よりマシですが、それでも寒いことに変わりありません。
鉄観音などのあったかいお茶で何とか寒さをしのいできたのですが、お茶ばっかりというのも寂しいものです。
なので今日は嗜好を凝らして、コーラをレンジであっためて飲んでみました!
感想は。。。

思ったほど不味くない、です。

うちにはないですが、ミントの葉っぱを入れると爽やか飲料になるんじゃないかな、と思ったりしました。
お試しください!

ウィルコム端末「WS007SH」が。。。

数年前にウィルコムから発売されたWindowsMobile搭載の端末「WS007SH」。
解約してから高電社の中国語辞書をインストールして使っていたのですが、最近タッチスクリーンが反応しなくなってしまいました。
CASIOなどの電子辞書に比べて手書き入力の認識速度が速く重宝していたのですが、今は中日辞書を引く場合、キーボードからピンイン入力するしかありません。
まだまだ読めない漢字が沢山あるので、この状態でピンインなしの文章を読むのは大変です。。。

中国で売っているWindowsMobile端末を買うのもいいのですが、日本語の入力・表示に難がありそうなので躊躇しています。
なので、今、同じような機種を持っている複数の日本の友人・知人に譲ってもらえないか問い合わせ中です。

--追記--
どうなることやら、と心配していましたが、数日後とうとうディスプレーに何も表示されなくなりました。。。
これでピンイン引きの辞書としても使えなくなりました。。。(涙)
ちょっとの間、紙の辞書に頼ることになりそうです。
今回の件で電子機器の弱点を改めて思い知らされました。

2010年3月8日

今日の単語

今日初めて聞いた単語を一つ。

《能干》
「能力がある」とか「やり手」みたいな意味のようです。

《他很能干。》
《一个能干的老板。》
のように形容詞的に使えるようです。

以上。。。