java - 如何声明和调用从 RPG 获取二维 bye 数组参数的 java 方法?

标签 java arrays primitive-types rpgle rpg

我有一个 java 方法,其参数之一是二维字节数组 (byte[][])。我想从 RPG 中调用这个方法。我知道它适用于一维字节数组,例如通过将 RPG 中的参数声明为 nA,其中 n 是数组的长度,A 是字母。即 RPG 中的 nA 与 java 中的 byte[] 相同。然而,当我将 DIM(k) 添加到参数声明 RPG 时,它说在方法的原型(prototype)中不允许使用关键字。 我可以使用 String 数据类型来完成此操作,但我想避免数据类型转换,例如从字节到 java String 的转换,反之亦然。 (效率问题)

有人可以帮我让它工作吗?

最佳答案

我认为从代码编译性和可读性的角度来看,这里的方法是使用一个简单的数据包装类来保存一个一维数组,然后让您的主代码使用一个一维实例数组所述数据包装类。

public class MyBytePacket
{
    private byte [] data;

    //Constructors and getters as needed
}

然后从主代码开始;

MyBytePacket [] packets = new MyBytePacket[10];

这样,您就可以看到有多少个数据包,以及每个数据包有多少字节,保持您想要的 2D 方面,但以更 Java 友好的方式。

关于java - 如何声明和调用从 RPG 获取二维 bye 数组参数的 java 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21967181/

相关文章:

java - Jetty 9 服务器没有 start() 方法

arrays - 在 flutter/Dart 中解析 JSON

arrays - 将枚举中的静态 Swift 数组转换为 NSArray 时出错

c++ - 我如何重载C++中的赋值运算符

java - Java 中原始数据类型和引用数据类型的共存

jsf - 使用 <ui :repeat> 迭代原语数组

java - 使用 Spring boot 将 RESTful 服务部署到 AWS

java - Math.acos(0.26311) 给出 1.3045519539106323。但使用计算器我们得到 74.74 度。如何将值转换为度数?

java - 编译/加载时间用 Spring 编织

c# - 索引超出数组范围 C#