私はこのようなクラスを持っています:
class NormalClass[T <: NormalClass[T]] {
object One
object Two
}
型指定された特性で上記のクラスの新しいインスタンスを作成できるようにしたいと考えています。次def make
の MetaClass は T のインスタンスを作成しますが、NormalClass に関連付けられた内部オブジェクトがありません。
trait MetaClass[T <: NormalClass[T]] {
def make:T = this.getClass.getSuperclass.newInstance.asInstanceOf[T]
}
オブジェクトが欠落している理由と、リフレクションを使用して、そのタイプの内部オブジェクトで新しいクラスを開始するための最良の方法は何かという 2 つの質問があります。
編集:詳細
私が直面している問題は、make eg を使用してインスタンスを作成しvar f = make
、オブジェクト メソッド egfOne.getSomething にアクセスしようとすると、エラーが発生することvalue One is not a member of type parameter T
です。