【レポート】

JavaOne 2006 - あの『Effective Java』から5年 「Effective Java Reloaded」

    杉山貴章  [2006/05/18]

    Sun Microsystemsは16日(現地時間)から4日間、サンフランシスコにて「2006 JavaOne Conference」を開催している。サンフランシスコのJavaOneは毎年開催される世界最大のJavaの祭典である。

    2日目にあたる17日、「Effective Java Reloaded」という、コアなJavaプログラマの興味をひくタイトルのセッションが行われた。「Effective Java」というのは、Javaプログラミングにおいて多くのプログラマーが間違えやすい箇所を取り上げ、それを回避する方法や、効果的にJavaを利用する方法などが紹介されている書籍のタイトルである。『Effective Java』は多くのJavaプログラマから高い評価を得ており、最新版のJavaに対応した改訂版を望む声も多い。

    「Effective Java Reloaded」では、『Effective Java』の原著者であるJoshua Block氏によって、主にTigerで追加された機能などに対する注意点やTipsが紹介された。セッションの中心になったのはGenericsの使用に関するTipsで、例えば次のような点がサンプルコードとともに指摘された。

    • 新しいコードではGenericsを使わない型は使用しない
    • 型パラメータではワイルドカードを活用する
    • 制限付きのワイルドカードでAPIの適用性を向上させる
    • 制限付きのワイルドカードと制限付きの型変数を混同しない
    • Genericsと配列を混ぜて使用しない(Genericsを推奨する)
    • タイプセーフな"Heterogeneous Container Pattern"を使用する

    Genericsに関してはポイントを押さえて正しく使用すれば非常に便利であり、安全性の高いプログラムを組む上では必要不可欠なものであるが、未だ苦手意識を持っているユーザも少なくない。そんなユーザに対するJoshua Block氏からのメッセージは「Generics aren't that scary once you got to know them.」である。

    Generics関連以外では次のようなTipsが紹介された。

    • オーバーライドする際には常に@Overrideアノテーションを使用する
    • クラスやメソッドの修飾子は理由が特に無い限り"private final"をデフォルトとする
    • HashMapはGenericsとAutoboxingによって疎な配列として使用できる
    • Serialization Proxyを使用する

    セッションの最後に、来年中に最新のJavaに対応した『Effective Java』が発売されるという情報が明らかにされた。Java SEの隅々までを知りつくした同氏の助言は多くのJavaプログラマにとって非常に有用なものである。『Effective Java』の真の"Reload"が待ち遠しい。

    関連サイト

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン