次のクラスを定義しました
private sealed trait Action2[-T1, +R] extends Function1[T1, R] {
def printResults()
}
private abstract class BaseAction[T1, R] extends Action2[T1, R]{
protected var result: R = null
override final def apply(values: T1) : R = {
result = evaluate(values)
result
}
override final def printResults() {
if(result == null)
print("The results have not been evaluated!")
else
printLazyResults(result)
}
protected[this] def printLazyResults(results: R)
protected[this] def evaluate(values: T1) : R
}
私はこのクラスの実装を持っており、与えられた実装をインスタンス化しようとするたびにメソッドは次のようになります。
implicit def unMkIdentity[A](x: Identity[A]): A = x.value
nullポインタ例外をスローします。最初にそれが呼び出される理由(scalazとScalazをインポートする)と、プロパティの結果からnull値を取得する理由がわかりません...