【发布时间】:2011-12-02 00:03:08
【问题描述】:
我需要将原语的动态列表传递给 Java 方法。这可能是 (int, int, float) 或 (double, char) 或其他。我知道这是不可能的,所以我正在考虑解决这个问题的有效方法。
由于我在 Android 上开发游戏,我希望尽可能避免垃圾收集,因此我不想使用任何对象(例如,因为自动装箱),而只想使用原始数据类型。因此,在我的情况下,原始类对象(例如整数)的集合或数组不是一个选项。
所以我在考虑是否可以将一个类对象传递给我的方法,该方法将包含我需要的所有原始值。但是,这既不是我的问题的解决方案,因为如前所述,原语列表是可变的。因此,如果我在我的方法中采用这种方式,那么我将不知道如何访问这个动态的原语列表(至少在没有任何对象转换的情况下,这是我想要避免的)。
现在我感觉有点失落了。我不知道Java中有任何其他可能的方法来解决我的问题。我希望这只是我缺乏知识。你们有谁知道没有对象转换的解决方案?
【问题讨论】:
-
您确定您的项目没有过早优化吗?您可以传递三种不同类型的三个数组。传递第四个类型指示符数组。然后将值从适当的偏移量拉到给定类型的数组中。
-
坦率地说我不认为我优化得太快了,因为我已经知道在我的项目中我必须经常调用这个方法。而且我也知道不幸的是,自动(取消)装箱通常会过多地触发垃圾收集器。
-
你能解释一下为什么你需要这个要求吗?我用 Java 编写了很多游戏,这对我来说从来没有必要,所以我很确定有一种解决方法可以避免分配。
-
@mikera:请在此处的“避免创建不必要的对象”下查看:developer.android.com/guide/practices/design/performance.html
标签: java android object primitive