型が合わん…。
こんなinterfaceを宣言してみた。
public interface A<L, R> { B<L, R> b(); List<B<L, R>> nestedb(); } public interface B<L, R> {}
で、更にこいつらを使って、こんな型を宣言しる。
public interface NumberedA extends A<Integer, Long> { NumberedB b(); List<B<Integer, Long>> nestedb(); } public interface NumberedB extends B<Integer, Long> {}
で、呼び出すコードを書いてみる。
public class Main { public void main(String[] args) { NumberedA np = null; NumberedB kids = np.b(); B<Integer, Long> kids2 = np.b(); List<NumberedB> fs2 = np.nestedb(); List<B<Integer, Long>> fs = np.nestedb(); } }
実行とか、しないよ。
で、
List<NumberedB> fs2 = np.nestedb();
の部分が、コンパイルエラーになるのは、何故なんだぜ?