Резервные общие параметры

У меня есть два интерфейса и классы:

public interface Identifiable<T> {
    T getId();
}

public interface GenericRepository<T extends Identifiable<K>, K> {
    T get(K id);
}

public class MyEntity implements Identifiable<Long> {

    private Long id;

    public Long getId() {
        return id;
    }
}

public class MyService {
    private GenericRepository<MyEntity, Long> myEntityRepository;
}

Все работает как нужно. Но, на мой взгляд, второй универсальный параметр в GenericRepository (K) является избыточным. Поскольку я знаю, что MyEntity - это Идентифицируемый, я думаю, было бы здорово, если бы я смог наконец использовать его следующим образом:

public class MyService {
    private GenericRepository<MyEntity> myEntityRepository;
}

Но я пробую разные вещи без успеха. Является ли это возможным? Если нет, то почему нет?

ОБНОВИТЬ: Отвечая на некоторые ответы. Я думаю, что компилятор знает кое-что о том, какой тип является универсальным в MyEntity. Например:

public class MyEntityGenericRepository implements GenericRepository<MyEntity, Long> {
    // compiles...
}

public class MyEntityGenericRepository implements GenericRepository<MyEntity, String> {
    // compiler says: "Bound mismatch: The type MyEntity is not a valid substitute for the bounded parameter <T extends Identifiable<K>> of the type GenericRepository<T,K>"
}

Ответы на вопрос(6)

Ваш ответ на вопрос