Ich habe das folgende Stück Code, der eine Quelle erstellt, die MarketFactors
ausgibt. Ich möchte jedoch in der Lage sein, den Typ des Zufallsgenerators zu wechseln, oder was die toMarketFactors
-Funktion tut.#Repr [A] in Akka Stream Quellentyp
Da jedoch alle Transformationen in der ursprünglichen Quelle im Typ sind, kann ich sie nicht in einen generischen Typ in der Eigenschaft umwandeln, die die Klasse implementiert (Option[Source[MarketFactors, NotUsed]]
), was muss ich tun?
Ich befestige die Sink
und später materialisieren, ist das eine schlechte Praxis?
override def factors: Option[Source[CorrelatedRandomVectorGenerator, NotUsed]#Repr[MarketFactors]] = {
val source = for { g <- generator } yield Source.repeat(g)
val marketFactors = Flow[CorrelatedRandomVectorGenerator].map(toMarketFactors)
source.map(_.via(marketFactors))
}