quabbinの日記: throwsにGenerics
Java の throws 節では型変数が使える - 宮川拓の日記
を見て、これいつから有るんだろうと思ってJava5で試してみた
C:\...>java -version
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) Client VM (build 1.5.0_22-b03, mixed mode, sharing)
C:\...>copy con Test.java
interface TestIF {
                void method() throws T;
}
public class Test implements TestIF {
                public void method() throws Exception {
                                throw new Exception();
                }
                public static void main(String[] args) {
                TestIF t = new Test();
                try {
                        t.method();
                } catch (Throwable e) {
                        e.printStackTrace();
                }
                }
}
^Z
                1 個のファイルをコピーしました。
C:\...>javac Test.java
C:\...>dir /w
  ドライブ C のボリューム ラベルがありません。
  ボリューム シリアル番号は ..... です
C:\... のディレクトリ
[.]            [..]           Test.class     Test.java      TestIF.class
                              3 個のファイル               1,134 バイト
                              2 個のディレクトリ  ....... バイトの空き領域
C:\>java Test
java.lang.Exception
                at Test.method(Test.java:3)
                at Test.main(Test.java:9)
普通にコンパイルできて、実行できた…。
Java5から実装されていたのですね…これは知らなかった。