2016-11-28 4 views
3

パラメータava.util.NoSuchElementException: Failed to find a default value for isInListにアクセスする際に問題が発生するカスタム見積もりを実装しています。次のように定義されますカスタムエスティメーターがNothingタイプをオーバーライドするのはなぜですか?

trait PreprocessingParams extends Params { 
    final val isInList = new Param[Array[String]](this, "isInList", "list of isInList items") 
} 

より良いデバッグするには問題は、私はここにhttps://gist.github.com/geoHeil/8dc7a6b6938a517f068e7fd6a981ed12ExampleTrans作品だけで罰金、最小限の例を作成しました。しかし、私はむしろトランスの機能性をいくつかのデータクリーニングを実行するエスティメータに含めるのが好きです。私ExampleEstimatorの戻り値の型と間違っている何

しかし、今、私が直面している奇妙なコンパイルの問題overriding method has wrong type - expecting Nothing

答えて

3

Estimatorタイプコンストラクタの汎用タイプを指定していないため、代わりにNothingが使用されています。

用途:

class ExampleEstimator(override val uid: String) 
    extends Estimator[ExampleTransModel] with PreprocessingParams { 
    ... 
} 

次のようにEstimatorの完全な定義は次のとおりです。

abstract class Estimator[M <: Model[M]] extends PipelineStage 

注モデルを拡張してジェネリック型M

関連する問題