2017-08-12 4 views
0

を持っていることを必要としますスカラ:どのタイプは、以下の状況で、Scalaでパラメータなしのコンストラクタ

class MyClass[T] { 
} 

がどのように私はTをパラメータなし/デフォルトコンストラクタを持つクラスであることを制限することができますか? ありがとう

+2

@cchantepは既にScalaの標準的なアプローチについて説明していますが、文字通り質問に答えることはできません。 –

+1

これは[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のようです。なぜあなたはこれをしたいのですか? – badcook

答えて

1

パラメータレスファクトリーを必要とするtypeclassアプローチを使用しますか。

trait Factory[T] { 
    def create(): T 
} 

class Foo() { 
} 

object Foo { 
    // Define Factory instance for Foo 
    implicit val factory: Factory[Foo] = new Factory[T] { 
    def create() = new Foo() 
    } 
} 

class MyClass[T : Factory] { 
    // accept only T with Factory[T] available 
} 
+0

ありがとうございます。正確には私が心に持っていたものではありませんが、確かにこれを行う方法の一つです。 –

関連する問題