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 値として検索することもできます。