復習 – J2SE 5.0

Java SE 7に向けて。
5年ぶりに言語仕様が改変される予定のJava。
ただ、Java SE 6の機能すら知らないので少しずつ勉強。
僕のJavaの知識はJ2SE5.0で足踏み中。。(SunのSJC-P 5.0の取得は去年;;)
なのでまずはJ2SE5.0の復習から。

J2SE1.4以前の書き方。(Javaのバージョン表記はややこしい)

import java.util.ArrayList;
import java.util.Iterator;

public class A{
    public static void main(String[] args) {
        ArrayList arraylist = new ArrayList();
        arraylist.add(new Integer(1));
        arraylist.add(new Integer(2));
        arraylist.add(new Integer(3));

        int i;
        for (int count = 0; count < 3; count++) {
            i = ((Integer)arraylist.get(count)).intValue();
            System.out.println(i);
        }
    }
}

J2SE5.0の機能を使って書き換えると、
(GenericsとAutoBoxingと拡張for文)

import java.util.ArrayList;

public class B {
    public static void main(String[] args) {
        ArrayList<Integer> arraylist = new ArrayList<Integer>();
        arraylist.add(1);
        arraylist.add(2);
        arraylist.add(3);

        for (int integer : arraylist) {
            System.out.println(integer);
        }
    }
}

ArrayListからArrayList<integer>のように変更されている。(Generics)
これでArrayListで扱うオブジェクトはIntegerに限定されることになり、
キャスティングの記述は省略できるようになる。

次に、Integerを入れるArrayListに、.add(1)と普通にint型を入れてる。
これがオートボクシング機能で、int入れる時に自動的にラッパークラス(Integer)に変換する。

拡張for文は素直に便利。

他にもJ2SE5.0からの新機能はあるけど、主なものはこの3つ。
Java SE 7からはRubyやPythonのサポートも強力になるとのこと。
たのしみ。

あわせて読む:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です