02-26-2015, 10:41 AM,
|
|||||
|
|||||
メソッド呼び出し時のTooFewCallArgumentsの解決方法
初めまして。
画面の検索処理を別クラスに移そうとしたところ、検索メソッドの呼び出しで 「'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 . . . } |
|||||
02-26-2015, 10:56 AM,
|
|||||
|
|||||
RE: メソッド呼び出し時のTooFewCallArgumentsの解決方法
> {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} |
|||||
02-26-2015, 11:08 AM,
|
|||||
|
|||||
RE: メソッド呼び出し時のTooFewCallArgumentsの解決方法
() を外したところ、解消されました。
ありがとうございます! |
|||||
« Next Oldest | Next Newest »
|
Users browsing this thread:
1 Guest(s)
1 Guest(s)