AURA MEDIA FIVE CO. 夢に近づくためにできることから始めてる。
エンジニアの独り言…
『JDK1.5』

 Java言語仕様が大きく変わると噂されており、今夏リリース予定のJava 2 Platform, Standard Edition 1.5(開発コード名「Tiger」※またまた、今年も虎ですね!)について
少し触れてみたいと思います。
 J2SE 1.5の目標は「Javaプログラミングの簡易化」。プログラマーが書くコードの量を減らしたり、アプリケーション導入を容易にするための改善です。

 改善項目は多数言語仕様に追加変更が行われていますが、その中からいくつか大きなものをピックアップしてみます。
サンプルが少し出てきますが、パッと見ただけでも、言語仕様の大幅な改善が読み取れると思います。これまのでバージョンアップとは違う大きなステップアップだと期待大です!

1. Generic Types
 従来のJDKライブラリのjava.util.List、java.util.MapではObjectとして要素を扱ってきていたので、型がバラバラな要素をListに登録できたり、また取り出すときには必ずキャストする必要がありました。このgeneric typeでは、登録できる要素の型をあらかじめ宣言でき、登録時にチェックが行われ、また取り出す際のキャストが不要となります。

  List nameList = new ArrayList();
  nameList.add( "aura" );
  String title = words.get(i).toUppercase();

2. Enhanced for loop
 Listをfor出まわしながら処理する…なんてことはJavaプログラマの皆さんは何度も体験していると思います。面倒ですよね?皆同じことを考えていた結果、こんなに楽になりました。

  List list = new ArrayList();
  (旧)
  for (int i = 0; i < list.size(); i++) {
   System.out.println( (Integer) list.get(i) );
  }
  (新)
  for (Integer i : list) {
   System.out.println(i);
  }

3. Autoboxing/unboxing
 変数には大きく分けて、プリミティブ型(int,char)、オブジェクト(Integer,String)があります。相互変換の為にすべてラッパークラスを用いる必要がありましたが、暗黙で行われるようになります。

  (数値のListを生成したい)
  List list = new ArrayList();
   (旧)
   list.add(new Integer(10));
   (新)
   list.add(20); ←ラッパーオブジェクトに変換する必要なし

  代入も可能です。
  int x = new Integer(5);
  Integer y = 3;

4. Formatted Output
C言語をあつかったことがある人にはお馴染みの可変長引数出力もJavaにはこれまでサポートされていませんでしたが、1.5からはサポートされます。MessageFormatクラスを用いた代替処理を行うこともできましたが、プリミティブを一々ラップしたり・・・・もう1行で書けます!

  System.out.printf("%s %5d\n", user,total);

 他にも多くの変更・追加がなされていますので、Javaプログラマの皆さんは注意しておいてください。前回、C#とJavaの話題をとりあげましたが、今回紹介した中にはC#には既にもりこまれているものもあります。

[Sun J2SE 1.5詳細]
    http://java.sun.com/developer/technicalArticles/releases/j2se15/

Last Update : 2004/02/17
 
Copyright (C) 2003 Media Five Co. - TECH All Rights Reserved.
BACK TOP HOME