02-26-2015, 10:41 AM
初めまして。
画面の検索処理を別クラスに移そうとしたところ、検索メソッドの呼び出しで
「'self.logic.search' の呼び出しの引数が少なすぎます。 [TooFewCallArguments]」
というコンパイルエラーが発生しました。
この場所以外でコンパイルエラーは発生していません。
見たところ引数の数と型は合っていそうなのですが、どこを確認するとよさそうでしょうか?
確認した内容は、次の通りです
・引数なしのメソッドも追加して同じ場所で呼び出してみる -> 同じくTooFewCallArgumentsエラー
・InterfaceとSearchLogicのメソッド名を変えてみる -> 変わらず
・引数 output の型を非nullにして {non-null self.rs-result} で渡す -> 変わらず
該当コードは下記の通りですが、他に必要になりそうな箇所がありましたらご指摘ください。
引数なしのメソッドで試してみても同様の構文エラーになるので、どこか別の原因がありそうな感じはするのですが…
【画面クラス】
|| 関係フィールドのみ抜粋
field public rs-result:#RecordSet
field private logic:*****LogicInterface = {*****SearchLogic}
.
.
.
|| 画面の検索処理メソッド
{method package {search}:void
{if-non-null self.rs-result then
{self.rs-result.delete-all}
{self.logic.search(self.tf-code.value, self.tf-name.value, self.rs-result)} || <- ここで構文エラー
}
}
【抽象クラス *****LogicInterface での宣言】
{method public abstract {search code:String, name:String, output:#RecordSet}:void}
【実装クラス *****SearchLogic での定義】
{method public {search code:String, name:String, output:#RecordSet}:void
.
.
.
}
画面の検索処理を別クラスに移そうとしたところ、検索メソッドの呼び出しで
「'self.logic.search' の呼び出しの引数が少なすぎます。 [TooFewCallArguments]」
というコンパイルエラーが発生しました。
この場所以外でコンパイルエラーは発生していません。
見たところ引数の数と型は合っていそうなのですが、どこを確認するとよさそうでしょうか?
確認した内容は、次の通りです
・引数なしのメソッドも追加して同じ場所で呼び出してみる -> 同じくTooFewCallArgumentsエラー
・InterfaceとSearchLogicのメソッド名を変えてみる -> 変わらず
・引数 output の型を非nullにして {non-null self.rs-result} で渡す -> 変わらず
該当コードは下記の通りですが、他に必要になりそうな箇所がありましたらご指摘ください。
引数なしのメソッドで試してみても同様の構文エラーになるので、どこか別の原因がありそうな感じはするのですが…
【画面クラス】
|| 関係フィールドのみ抜粋
field public rs-result:#RecordSet
field private logic:*****LogicInterface = {*****SearchLogic}
.
.
.
|| 画面の検索処理メソッド
{method package {search}:void
{if-non-null self.rs-result then
{self.rs-result.delete-all}
{self.logic.search(self.tf-code.value, self.tf-name.value, self.rs-result)} || <- ここで構文エラー
}
}
【抽象クラス *****LogicInterface での宣言】
{method public abstract {search code:String, name:String, output:#RecordSet}:void}
【実装クラス *****SearchLogic での定義】
{method public {search code:String, name:String, output:#RecordSet}:void
.
.
.
}