Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java传递数据_Java - Fatal编程技术网

用Java传递数据

用Java传递数据,java,Java,我正在做一个java游戏,我有一棵树,里面有一些关于游戏的不同数据。树的根注释有一个int数组,用于“描述”游戏板。 现在我想模拟这个游戏可能的步骤,从原来的游戏板到前面的X圈。 我通过将游戏板传递给SimulateTurn函数来实现这一点 public static AgentStructure SimulateTurn(int index, int[] gameTable) 然后我像这样调用函数: AgentStructure localStruct = new AgentStructur

我正在做一个java游戏,我有一棵树,里面有一些关于游戏的不同数据。树的根注释有一个int数组,用于“描述”游戏板。 现在我想模拟这个游戏可能的步骤,从原来的游戏板到前面的X圈。 我通过将游戏板传递给SimulateTurn函数来实现这一点

public static AgentStructure SimulateTurn(int index, int[] gameTable)
然后我像这样调用函数:

AgentStructure localStruct = new AgentStructure();            
Tree node = new Tree("Child #"+(i-7), tree);  
localStruct = SimulateTurn(i, tree.getAgentStructure().gameTable);
node.setAgentStructure(localStruct);
tree.AddChild(node);
System.out.print("Node created\n");
但这会改变原始游戏表中的数据

treee.getAgentStructure().gameTable
为什么呢?我感觉这是因为函数SimulateTurn传递正在更改gameTable而不是gameTable的副本?但我怎样才能改变这个? 我对Java不是很熟悉,但因为学校的作业,我不得不这么做。 有什么想法吗?
谢谢..

当您想要数组的副本时,必须手动复制它-否则,您会将原始数组的地址传递给该方法,并且每次更改都会在原始数组中反映出来

要复制数组,请参阅

Arrays.copyOf()
以各种形式

例子
谢谢你,伙计。我知道这与此有关,但无法找到解决方案。
final int[] gameTableCopy = Arrays.copyOf(gameTable, gameTable.length);