1
型を一般的な方法で変換する方法はありますか?Scalaの型を一般的に変換する
class Super {
type MessagesType = Product
type AggregatorType = Product
}
class Sub1 {
override type MessagesType = (Class1, Class2)
override type AggregatorType = (Option[Class1], Option[Class2])
}
class Sub2 {
override type MessagesType = (Class1, Class2, Class3)
override type AggregatorType = (Option[Class1], Option[Class2], Option[Class3])
}
AggregatorType
は常にMessagesType
に種類ごとのOption
Sが含まれています:私は現在、このようなものを持っています。私は、Sub
にMessagesType
しか宣言しておらず、対応するAggregatorType
が自動的に生成される方法を見てきました。現在私はTuple
を使っていますが、HList
、ケースクラスなどに変更できます。しかし、私はShapeless 1.2.4(いくつかの推移的な依存関係のため)を使うことの限界があります。
アイデア?
これは面白そうだ...しかし、追加的な問題があります。いくつかの推移的な依存関係のため、Shapeless 2.xではなくShapeless 1.2.4を使用しなければなりません。( –
これを1.2.4に変換することが可能であると思います( '.tupled'、' .hlisted'、 'Mapped 'は1.2.3で追加されました)。 –