C# と Java の Generics(テンプレート)の違い?
id:unibon:20080815:p1 の続き。
Java でこれと同じことをしようとしたら、つぎのところで行き詰ってしまった。
import java.util.*; public class MyTest { public static void main(String[] args) { List<String> list0 = (new Class0<String>()).hoge0(); List<String> list1 = Class1.<String> hoge1(); } } class Class0<T0> { public List<T0> hoge0() { return new ArrayList<T0>(); } } class Class1 { public static <T1> List<T1> hoge1() { return new ArrayList<T1>(); } }
ここまでは一応コンパイルは通る。
しかし、そもそも
また、hoge0 メソッドを static にしようとするとコンパイルエラーになってしまう。なんで?