从RPGLE(AS400)到java的多维数组

时间:2017-10-20 15:35:58

标签: java arrays rpgle

我已多次尝试将多维数组从rpg(AS400)传递给java,但它没有用, 是否有可能将多维数组从RPGLE(AS400)传递给java可以帮助。

1 个答案:

答案 0 :(得分:1)

问题是你试图传递一些非原始的东西。在java中,您只需将类传递给方法或过程。 RPG几乎仅限于传递基元。

所以你可以为多维数组创建一个构造函数,它接受一个字符串数组并在java中构建多维数组。

以下是如何传递定义为string []的事件参数。我只传递了一个,但你可以传递更多。

h DftActgrp(*NO) ActGrp('Java')                                      
d xls2csv         pr                  extproc(*JAVA                  
d                                     :'XLSX2CSV.XLSX2CSV':'main')   
d                                     static                         
d args                            O   CLASS(*JAVA:'java.lang.String')
d                                     dim(1)                         
d                                     Const                          

d inputargs       s               O   CLASS(*JAVA:'java.lang.String')
d                                     dim(1)                         

d crtString       PR              o   EXTPROC(*JAVA:                 
d                                             'java.lang.String':    
d                                             *CONSTRUCTOR)          
d RPGBytes                     250A   Const Varying                  

c     *entry        plist                                            
c                   parm                    path            200      

c/free                                                               
     inputargs(1) = crtstring(%trim(path));                          
                              xls2csv(inputargs);                    
     *inlr = *on;                                     
     return;       

或者您可以从java类返回多维数组,并将该类传递给java程序。无论哪种方式,您都必须创建一个具有用于创建多维数组类的构造函数的java类。