RPG におけるストリング・オブジェクトの使用
RPG コードの中に String オブジェクトがある場合、図 1 にあるコーディングを使用してその長さと内容を検索することができます。
図 1. String オブジェクトの長さと内容を Java から検索する
D stringBytes PR 100A VARYING
D EXTPROC(*JAVA
D : 'java.lang.String'
D : 'getBytes')
D stringLength PR like(jint)
D EXTPROC(*JAVA
D : 'java.lang.String'
D : 'length')
D string S like(jstring)
D len S like(jint)
D data S 100A VARYING
/free len = stringLength (string);
data = stringBytes (string);
if (len > %len(data));
error ('Actual string was too long');
endif;
/end-free
ユーザーは、getBytes メソッドからの戻り値を、Java™ String の中にあるデータの長さについてユーザー自身が知っていることに基づいて長さを選んで、任意の長さ (可変または非可変のいずれでも) の文字データとして定義することができます。また、String オブジェクトの形式が正しいことが確実であれば、戻り値を Date、Time または Timestamp として定義することもできます。
他の方法として、getBytes の代わりに getChars メソッドを呼び出して、ストリング値を UCS-2 値として検索することもできます。