Я делаю буфер, который принимает простой объект с некоторыми переменными.как передать значение путем копирования в java
Я хочу скопировать объект внутри функции и взять его как копию, но Java, похоже, передается как ссылка.
Все мои поисковые запросы google приходят к людям, задающим разницу между копией и ссылкой, но не обнаружили ничего, что связано с моим вопросом.
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);
}
}
Вы должны знать, как скопировать объект. Код или другие особенности необходимо сказать больше. – chrylis
Можете ли вы показать нам фактический код, о котором вы спрашиваете? –
Java всегда проходит по значению - всегда. Для ссылочных типов передаваемая вещь является ссылкой на объект, который живет в куче. – duffymo