java - 全局 float 组值不传递类

标签 java arrays global-variables

这是 Problem with array assignment 的后续问题

我现在已经像这样完成了 addcube ..当我打印数组时,一切都按预期工作。但是当我在另一个类中打印相同索引的 AFTER 分配时,它告诉我它们等于 0。所以这些值(value)观不是“节省”的。为什么是这样?我该如何纠正这个问题?

       public void addcube(float highx, float lowx, float highz, float lowz){
        //Constructing new cube...
System.out.println("f = " + f);
        Global.cubes++;
        float y = 1.5f;
        System.out.println("highx = " + highx + "lowx = " + lowx + "highz = " +         highz + "lowz = " + lowz);
        //FRONT
        Global.camObjCoord[Global.i] = highx;
        Global.i++;
        System.out.println("cube i = " + Global.i);
}

在这两种情况下,我都像这样打印......

    int p = 0;
            while(p < 72){
                System.out.println(Global.camObjCoord[p]);
                p++;
            }

Global.i = 0 位于开头。

引用数组的唯一其他位置如下..

cubeBuff = makeFloatBuffer(Global.camObjCoord);

                FloatBuffer makeFloatBuffer(float[] arr) {
            ByteBuffer bb = ByteBuffer.allocateDirect(arr.length*4);
            bb.order(ByteOrder.nativeOrder());
            FloatBuffer fb = bb.asFloatBuffer();
            fb.put(arr);
            fb.position(0);
            return fb;
    }

我的代码中没有对该数组的进一步引用。

谢谢。

最佳答案

我会严重质疑你的设计。您总是引用该 Global 类,该类显然似乎从任何地方都发生了更改,因此您遇到了此类问题(例如之前的 NullPointerException )。

使用 encapsulation 清楚地尝试不同的事情和 do not just use one global state由不同的类操作。如果类严格只对它们自己的成员进行操作,那么依赖性就会减少,并且更容易跟踪数据的操作位置。

关于java - 全局 float 组值不传递类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3239407/

相关文章:

javascript - JSON/Javascript : return which array object contains a certain property

PHP混合关联数组如何在foreach循环中获取值

c - 在 MSP430 代码中使用全局变量

python - 全局变量在Python并行编程中如何工作?

ios - 如何在 swift 中全局使用解析值

java - 以编程方式监听特定 url 的网络调用

java - 如何在我的 Java 应用程序中使用 Amazon Web Services 策略声明?

c - 静态或指针当 "Returning"数组

java - 如果Java程序中存在内存泄漏,它会在任务栏中显示高内存使用率吗?

java - 一个 jar 文件可以在类路径中出现两次吗?