我正在开发 JavaCard,即运行 Java(或其子集:Java Embedded)的 SIM 卡。由于内存限制,我有一个数组可以重复用于多个任务。
我想要一个函数基本上返回一个指向该数组的指针,带有偏移量,因此是一个切片。这样我就可以确保该数组的任何部分都不会被意外覆盖。
Java 中并不存在指针,但是有没有一种方法可以返回数组的一部分而不复制它?
不,这是不可能的。对象(引用)是 Java 中最接近指针的。
如果这是常规 Java,我会建议将数组用
List
包装在 Arrays.asList
中,然后使用 List
方法 subList
,该方法提供列表的一部分的视图,而无需复制其内容。
但是,如果我正确阅读了 JavaCard API 参考,则这些不包括在内。您可以尝试自己编写这些接口/类/方法的简单版本。