Java APIから取得したSelenium WebElementがありますが、Scalaクラス、Element、およびmixinのより具体的な特性(Clickable、Submittableなど)を作成しました。Scalaで返された値を持つmixinの特性を保持する
toScalaElement(e : WebElement) = {
e.type match {
case Input => new Element(e) with Submittable
case Link => new Element(e) with Clickable
...
case _ => new Element
}
}
それはすべての例ルートクラスだと戻り値の型は常に要素である:
私たちの方法は次のようになります。しかし、mixin形質が戻されたときにそれを保持したいと考えています。
ScalaのCollections APIでビルダーを見ることをお勧めしましたが、この特定のアプリケーションとの関係は不明です。明らかに、特性ミックスインよりも優れた方法があれば、その解決策は高く評価されます。
更新:文字列ではなくサブタイプと一致するように大文字小文字を変更しましたが、質問の要点は変更されません。
私は少し質問を誤解したように見えます。上記を行うならば、メソッドの型は混在することなく 'Element'になります。 mixinを使用するには、使用サイトでパターンマッチする必要があります。 –