メソッド呼び出し時のTooFewCallArgumentsの解決方法 - Printable Version +- Curl Global Community (https://communities.curl.com) +-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1) +--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2) +--- Thread: メソッド呼び出し時のTooFewCallArgumentsの解決方法 (/showthread.php?tid=1205) |
メソッド呼び出し時のTooFewCallArgumentsの解決方法 - kay - 02-26-2015 初めまして。 画面の検索処理を別クラスに移そうとしたところ、検索メソッドの呼び出しで 「'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 . . . } RE: メソッド呼び出し時のTooFewCallArgumentsの解決方法 - dankom - 02-26-2015 > {self.logic.search(self.tf-code.value, self.tf-name.value, self.rs-result)} 引数の指定に()カッコがついてるのが原因じゃないでしょうか。 Curlの場合は引数の指定は通常、()は付けないです。 なのでこのような呼び出しになります。 {self.logic.search self.tf-code.value, self.tf-name.value, self.rs-result} RE: メソッド呼び出し時のTooFewCallArgumentsの解決方法 - kay - 02-26-2015 () を外したところ、解消されました。 ありがとうございます! |