如何在Java Card中连接数组

时间:2018-03-30 03:43:14

标签: javacard

Java有很多方法可以连接数组,但Java Card似乎没有。有办法吗?

例如,我想连接这两个数组

byte[] a= {(byte) 'P', (byte) 'K'};
byte[] b= {(byte) 'T', (byte) 'G'};

我想要的是什么:

byte[] C= {(byte) 'P', (byte) 'K', (byte) 'T', (byte) 'G'};

有什么办法吗?

2 个答案:

答案 0 :(得分:4)

在Java Card中,资源很少,因此数组永远不会连接在一起。数组连接将创建一个新对象,这意味着必须声明额外的内存。

最佳做法是仅使用new运算符创建对象(对于EEPROM / flash中的持久数组或JCSystem.makeTransientByteArray以及安装/个性化期间的瞬态内存(RAM)的朋友,而不是在正常运行期间该领域。

为了连接数组,您可以使用带有偏移量和长度的Util.arrayCopy()来复制现有数组(包括APDU缓冲区)之间的数据。

类似地,几乎所有使用缓冲区的库调用都需要偏移量和长度,因此可以使用预先存在的数组(缓冲区) - 以边界检查为代价,您必须自己完成。

答案 1 :(得分:-1)

不,没有可用的API。