gpt4 book ai didi

java - 全局 float 组值不传递类

转载 作者:行者123 更新时间:2023-12-02 00:50:52 26 4
gpt4 key购买 nike

这是 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com