Ab V5R1 gibt es in RPGIV einen neuen Datentyp 'O' = Object.
Hier kannst du eine Java Object definieren.

Bsp.

Code:
D Obj          S   O CLASS(*JAVA
D                         :'java.lang.Object')
D Str          S   O CLASS(*JAVA
D                         :'java.lang.String')
D Num          S   O CLASS(*JAVA
D                         :'java.math.BigDecimal')
Wenn du eine Methode (Procedure) eines Java-Objects definieren willlst sieht das folgendermaßen aus.

Code:
D objectEquals PR   N EXTPROC(*JAVA
D                            : 'java.lang.Object'
D                            : 'equals')
C              IF objectEquals (obj1 : obj2)
C ...
C              ENDIF
..und noch etwas Code
Code:
  D  BigDecimal              C                   'java.math.BigDecimal'
  D  add                     PR          O        EXTPROC(*Java: BigDecimal: 'add')
  D  otherNum                            O        CLASS(*Java: BigDecimal)
  D                                                CONST
  D ConstNum                 PR          O        EXTPROC(*Java: BigDecimal: *CONSTRUCTOR)
  D GetValue                 PR          O         EXTPROC(*Java: BigDecimal: 'toString')
  D                                                CLASS(*Java: 'java.lang.Stringv)
  D getLongValue             PR         20I 0      EXTPROC(*Java:'java.lang.Long':
                                                           'valueOf')
  D                                                STATIC
  D string                               O         CLASS(*Java:'java.lang.String')
  D                                                CONST
  D Num1                     S           O         CLASS(*Java:BigDecimal)
  D Num2                     S           O         CLASS(*Java:BigDecimal)
  D Total                    S           O         CLASS(*Java:BigDecimal)
  D longInteger              S         20I 0
  D*
  C                   EVAL                    Num1 = ConstNum(225)
  C                   EVAL                    Num2 = ConstNum(175)
  C                   EVAL                    total = add(Num1: Num2)
  C                   EVAL                    longInteger = 
                                              getLongValue (GetValue (total))
Sehr gut beschrieben ist das alles auch hier : http://publib.boulder.ibm.com/html/a...s/c0925073.pdf
(Ab Seite 157)

Sven



[Dieser Beitrag wurde von Sven Schneider am 24. April 2002 editiert.]