Мне нужно ограничить параметр метода Scala, чтобы он реализовывал как черту, так и структурный подтип.Как я могу это сделать?
trait Foo
// ...
def someMethod[A <: Foo xxx { def close() }](resource: A)(block: A => Unit) {
// ...
}
Что мне поставить вместо xxx
?Я пробовал и extends
, и with
, но получил синтаксические ошибки.
Можно ли это сделать, используя определение type
для структурного подтипа?