私のHadoopジョブでこのエラーが発生しました。
java.lang.NoSuchMethodException: <PackageName>.<ClassName>.<init>(<parameters>)
ほとんどのScalaコードでは、コンパイル時に使用します。しかし、この仕事は実行時に呼ばれるので、私はコンパイル時にそれをキャッチしていませんでした。Scalaに重複するコンストラクタが必要な理由(java.lang.NoSuchMethodException)
私は、デフォルトのパラメータは、両方のシグネチャを持つコンストラクタが1つの引数をとって作成されると思います。
class BasicDynamicBlocker(args: Args, evaluation: Boolean = false) extends Job(args) with HiveAccess {
//I NEEDED THIS TOO:
def this(args: Args) = {
this(args, false)
}
... }
私はthis
を使用して、オーバーロードコンストラクタを宣言するために必要なハードな方法を学びました。 (私はそれが他の人を助ける場合にこれを書きたいと思っていました。) 私も小さな質問があります。それはまだ私には重複しているようです。 Scala言語の設計上の制限によりこれが必要な理由はありますか?
良い質問です:どのようにコンストラクタを呼ぶのですか? –