если это было изначально
екте Spring Data CrudRepository предоставляет сложные функции CRUD для управляемого класса сущностей.
public interface CrudRepository<T, ID extends Serializable>
extends Repository<T, ID> {
<S extends T> S save(S entity);
T findOne(ID primaryKey);
Iterable<T> findAll();
Long count();
void delete(T entity);
boolean exists(ID primaryKey);
// … more functionality omitted.
}
В общем, я знаю, что означает «S расширяет T», т. Е. Что S, возвращаемый тип операции сохранения, должен быть подтипом T. Почему необходимо добавлять такие как ограничение? Я думаю, что было бы хорошо сделать что-то вроде этого:
T save (T entity);
Как в
void delete(T entity);
Я погуглил, чтобы найти больше помощи, и я выяснил следующий вопрос о самом стеке, но он мне не совсем понятен:
Spring CrudRepository: зачем изобретать новый универсальный тип S
благодарю вас.