如何在java中通过副本传递值

时间:2015-12-31 02:05:57

标签: java

我正在创建一个带有一些变量的简单对象的缓冲区。

我想在函数中复制对象并将其作为副本,但Java似乎是作为参考传递的。

所有我的谷歌搜索都会让人们询问复制和参考之间的差异,但是没有找到与我的问题相关的任何内容。

class Key
{
   enum key {up, down, left, right}
   key k;
   int timelastpressed;
}

class Input
{
Key.key key;
public void Update()
{
 key = TakeInput();
 buffer.AddKey(key); // This pass me by reference, so the buffer only have one key and it updates this key instead of adding new ones
} 

public Key TakeInput()
{
   return GetKey();
}
}

class Buffer()
{
List<Keys> key;

public void AddKey(Key key)
{
 key.add(key);
}
}

1 个答案:

答案 0 :(得分:-1)

正如一些评论暗示的那样,解决方案是使参数I在更新函数中传递一个临时变量。

非常感谢。