Jun 26, 2012 16:08
Код:
static class Foo1 {
K id;
}
static class Foo2 extends Foo1 {
}
public static void main(String[] args) {
Foo2 f2 = null;
Long l = f2.id;
}
На подчеркнутую строчку компилятор ругается:
error: incompatible types
Long l = f2.id;
required: Long
found: Object
Всё начинает компилироваться, если объявлять Foo2 не параметризованным:
static class Foo2 extends Foo1 {
}
Почему так и как заставить первый случай работать?