Curl Global Community
メソッド呼び出し時のTooFewCallArgumentsの解決方法 - Printable Version

+- Curl Global Community (http://communities.curl.com)
+-- Forum: Discussions (http://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (http://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

() を外したところ、解消されました。
ありがとうございます!