我已多次尝试将多维数组从rpg(AS400)传递给java,但它没有用, 是否有可能将多维数组从RPGLE(AS400)传递给java可以帮助。
答案 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类。