Introduction

ブログ内検索

  • このサイトの記事を検索 by Google

おすすめの一冊!

無料ブログはココログ

« *OBSOLETED* | トップページ | *OBSOLETED* »

2005-02-28

Java 5.0 "Tigar" で待望の機能が…

Brett McLaughlin著: Java 5.0 Tiger(開発者ノートシリーズ)今日読了した『Java 5.0 Tigar』は,最近公開された新バージョンの
Java の解説書です.ひさびさにちゃんと勉強をした,って感じです.

Seaoak が Java の勉強を始めてからもう 4 年くらい経ちますが,
主に書籍を読んでるだけで,まともなコードは書いていませんでした.
その主な理由は『キャストを前提にしたコードなんて許せない!』.

Java には HashedMap などの立派な標準コレクションがありますが,
従来の Java で標準コレクションクラスではキャストが必須でした.
標準コレクションに入れられるのは Object 型だけで.あとは継承の
仕組みを使い,『すべてのクラスのスーパークラスである Object 型を
格納できるなら,あとは適宜ダウンキャストすればいいよね?』って話.

この仕組みで何が悪いかというと,
 1) 例外的にのみ使用すべきキャスト(しかもダウンキャスト)がコードのあちこちに
   散在してしまい,本当の意味での(注意が必要な)キャストが埋もれてしまう.
 2) 実行してみないとそのダウンキャストでエラーになる(例外がスローされる)か
   どうかわからない.もちろんテストはするが,すべての経路を試験するなんて無理…
ってところです.特に前者は Seaoak 的に許しがたいところです.
まぁ,『弁語士』ってわけじゃないのでいいんですけど,少なくとも仕事では
使いたくないかなって感じでした.余計な苦労をするはめになりそうなので.

で,Java 5.0 "Tigar" です.ついに待望の Generic 機能がサポートされました.
もう,コンテナクラスでのキャストは不要です(少なくとも Seaoak 的に
まともなコードなら不要なはず).しかも,コンパイル時に処理されるので
実行時のオーバヘッドも最小限とかいう話もあります(その代わり,あまり
凝ったことをやろうとすると妙な挙動をする場合もあるみたいですが).
これで,ようやく実用的なオブジェクト指向言語になったって感じです.

実は,先日から Java アプリケーション開発を画策してたりします.
それで『乱読録』にいろいろ Java 関係の書籍がでてるわけですが.
まぁ,本当に作るかどうかは本業の忙しさしだいだったりします.
運が良ければ Seaoak 初の Java 開発になるかも???

« *OBSOLETED* | トップページ | *OBSOLETED* »