私のクラスはいくつかの基本クラスから継承しapply
、基本の署名とまったく同じ署名を持つメソッドを実装しています。apply
クラスからbase のメソッドを呼び出したい。私がフォローしようとすると:
class MyClass extends BaseClass {
def apply(k: String, v: String) = {
super.apply(k, v)
...
}
...
}
value apply is not a member of BaseClass...
コンパイルエラーになりました。子クラスから base の apply メソッドを呼び出すにはどうすればよいですか?
また、キーワードapply
なしでメソッドをオーバーライドできるのはなぜですか?override
編集:実際のコード:
class OAuthParamsBuilder(helper: OAuthParamsHelper)
extends KeyValueHandler {
def apply(k: String, v: String): Unit = {
...
}
}
class OAuthInitSupportBuilder
extends OAuthParamsBuilder(StandardOAuthParamsHelper) {
/*override*/ def apply(k: String, v: String): Unit = {
super.apply(k, v)
...
}
...
}
編集: KeyValueHandler が特性であることに気付きました。これは問題になる可能性があります。
trait KeyValueHandler extends ((String, String) => Unit)