我正在创建一个带有一些变量的简单对象的缓冲区。
我想在函数中复制对象并将其作为副本,但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);
}
}
答案 0 :(得分:-1)
正如一些评论暗示的那样,解决方案是使参数I在更新函数中传递一个临时变量。
非常感谢。