У меня есть абстрактный класс с методом, который получает HList в качестве параметра (A). Однако в подклассах я хотел бы ограничить точные типы этого HList (B)
Приведенный ниже код не работает (он не рассматривает (Int :: String :: HNil)
как подкласс HList
. Но как добиться аналогичного эффекта?
import shapeless.{::, HList, HNil}
import shapeless.syntax.std.tuple._
abstract class A{
def test[H <: HList](h: H): String
}
class B extends A {
override def test(h: (Int :: String :: HNil)): String = {
val a = h(0)
val b = h(1)
s"$a -- $b"
}
}
new B().test(25 :: "testje" :: HNil)