我需要将基元的动态列表传递给Java方法。这可能是(int,int,float)或(double,char)或其他。我知道这是不可能的,所以我正在考虑解决这个问题的有效方法。由于我在Android上开发了一款游戏,我希望尽可能避免垃圾回收,因此我不想使用任何对象(例如由于自动装箱),而只使用原始数据类型。因此,在我的情况下,原始类对象(例如Integer)的集合或数组不是一个选项。将基元的动态列表传递给Java方法
所以我想我是否可以传递一个类对象给我的方法,它将包含我需要的所有原始值。然而,这不是我的问题的解决方案,因为如上所述,基元列表是可变的。因此,如果我在我的方法中采用这种方式,那么我不知道如何访问这个原始的基元列表(至少不是没有任何转换到对象,这是我想要避免的)。
现在我觉得在这里有点失落。我不知道Java中的任何其他可能的方式如何解决我的问题。我希望这只是我缺乏知识。您是否有人知道没有与对象进行转换的解决方案?
你确定你不是在你的项目太快优化? 您可以传递三种不同类型的三个数组。传递第四类型的指标。然后将值从适当的偏移量拖到该给定类型的数组中。 – Marvo
坦率地说,我认为我没有尽快优化,因为我已经知道在我的项目中我必须经常调用这个方法。而且我也知道,不幸的是auto(un)boxing往往会触发垃圾收集器的方式太多。 – Matthias
你能解释为什么你需要这个要求吗?我在Java中编写了很多游戏,这对我来说从未是必要的,所以我很确定有一种避免分配的解决方法。 – mikera