Вам необходимо указать тип Z
в расширении SubBatches<Y, Z extends WinningBatches<Y>>
или оставить его как универсальный в TotalBatches
.
Кроме того, спецификация типа, такая как <T extends U>
, должна быть объявлена новым интерфейсом, а не расширяемым интерфейсом.
Вот 3 примера, которые должны решить вашу проблему:
// 1. Without specifying Z
public interface TotalBatches<Z extends WinningBatches<String>> extends SubBatches<String, Z> { }
// 2. Specifying Z
public interface TotalBatches extends SubBatches<String, WinningBatches<String>> { }
// 3. Using custom extension of WinningBatches
public interface StringWinningBatches extends WinningBatches<String> { }
public interface TotalBatches extends SubBatches<String, StringWinningBatches> { }