【レポート】

Java SE 7のモジュラリティサポート - JavaOne 2007で明らかになった新概念

2 パッケージインタフェースのコード例

    杉山貴章  [2007/05/13]

    続いて両氏は、JSR 294でスーパーパッケージと合わせて導入を検討しているパッケージインタフェースについて少しだけ紹介した。モジュール化されたプログラムの利点のひとつによく挙げられるのは、完成した部分から逐次コンパイルしていくことができるということだ。しかし現状、あるパッケージをビルドするには依存するパッケージもすべて実装済みでなければならず、分割コンパイルが実現できていない。

    そこでパッケージについてインタフェースを用意することで、実装が存在しなくてもそれに依存する他のパッケージをコンパイルできるようにするというのがパッケージインタフェースの狙いだという。パッケージインタフェースにはコンパイルに必要な情報だけを記述する。具体的なコード例としてはリスト3のようなものが紹介された。

    リスト3 パッケージインタフェースの定義例

    package interface P;
    import Z.*;
    
    class C implements I {
        public C(int i);
        protected Object f();
        String m() throws Exec;
    }
    

    このようなインタフェースを用意しておけば、実際にクラスCの実装がなくてもリスト4のようなコードをコンパイルすることができるようになるとのことだ。

    リスト4 パッケージインタフェースを利用すればコンパイル可能

    package A;
    import P.*;
    
    class Client {
        C c = new C(5);
        ... c.f ...
        try { c.m(); }
        catch (Exec e) { ... }
    }
    

    JSR 294はJava SE 7での導入を目指して、現在、仕様の策定作業が進められている。もう一方のモジュラリティである「デプロイメント時のモジュラリティ」を担うJSR 277やJSR 291のメンバーとも情報交換しながら、仕様の一貫性を保つように努力しているという。最初の実装は2007年後半にOpenJDKプロジェクトを介して公開される予定との話だ。

    関連記事

    関連サイト

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

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