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)?

questionAnswers(1)

yourAnswerToTheQuestion