Я пытаюсь написать репозитария черту, как:Черта метод со свободными параметрами
trait Repository[E <: Entity] {
def exists(id: Long): Boolean
def get(id: Long): E
def insert(entity: E): Unit
def delete(entity: E): Unit
}
Проблема с этим кодом является то, что юридическое лицо может иметь составной ключ, который не долго, так что у меня есть проблемы с выполнением контракт с целью при внедрении репозиториев.
Я попытался представить ключ как реализацию другого признака, но я не могу выполнить контракт из-за того, что свойство репозитория не может обрабатывать конкретную реализацию каждого объекта.
Могу ли я установить параметры существует и стать свободным? могу ли я указать тип функций, которые зависят от типа ключа объекта?
насчет добавления другого параметра типа в '' Repository' для Long'? Или абстрактный псевдоним. –