Jak powiązać parametr ogólny z określoną podklasą listy?
W poniższym kodzie oczekiwałbym:
public static <K, D extends List<T>, T> List<Map<K, D>> meth(K k, D d) {
List<Map<K, D>> daBytes = (List<Map<K, D>>)
new ArrayList<Map<K, List<List<Byte>>>>();
// ...
}
kompilator, aby to zrozumiećD
jestList<List<Byte>>
i / lub toT
jest<List<Byte>
- i faktycznie pozbyć się obsady. Zamiast tego dostaję:
Cannot cast from ArrayList<Map<K,List<List<Byte>>>> to List<Map<K,D>>
i tak potrzebuję obsady.
Czemu ? Czy to, co chcę, jest jakoś możliwe (bezwzór strategii obejście problemu)?