RPG プロトタイプでのメソッド・パラメーターの不正確な指定
Java™ メソッドのプロトタイプをコード化する際、戻り値およびパラメーターのタイプを正確に指定しないと、RPG コンパイラーは、メソッド・シグニチャーを不正確にビルドします。 プログラムが実行されると、間違ったメソッドが呼び出されるか、呼び出しが NoSuchMethodError Java 例外で失敗します。
呼び出しが NoSuchMethodError Java 例外で失敗する場合、RPG エラー・メッセージは、メソッドの呼び出しで使用された署名を示します。以下の表は、Java タイプとメソッド・シグニチャー値の間のマッピングを示します。Java タイプと RPG タイプ間のマッピングについては、表 1を参照してください。
| Java タイプ | 署名 |
|---|---|
| boolean | Z |
| byte | B |
| char | C |
| short | S |
| int | I |
| long | J |
| float | F |
| double | D |
| any object | Lclass; |
| any array | [type |
Java クラスのメソッド用の有効な署名のリストを表示するには、QSH コマンドを使用します。
javap -s classname
ここで、classname はパッケージと共に指定されます。例: java.lang.String クラスが標準の classpath にない場合は、javap に classpath オプションを指定できます。
javap -s classname -classpath classlocation
メソッド用の有効な署名をメソッド呼び出し用の RPG で使用される署名を比べ、マッピング・テーブルから作業することによって、プロトタイプのエラーを判別できます。