验证泛型类型参数是否符合2个不相关的类型

Eug*_*Loy 3 generics scala variance type-bounds

在Scala中,可以指定泛型参数的类型绑定.

例如,要确保A符合SomeType1以下条件:

trait Example[A <: SomeType1]
Run Code Online (Sandbox Code Playgroud)

现在,让我说我需要确保A符合2个不相关的类型SomeType1SomeType2.

有没有办法做到这一点?

4le*_*x1v 6

它只是一种产品类型,在Scala中你可以表达这样的东西with,即:

trait Example[A <: SomeType1 with SomeType2]
Run Code Online (Sandbox Code Playgroud)