gpt4 book ai didi

java - 如何在java中创建具有公共(public)元素的多个列表

转载 作者:行者123 更新时间:2023-12-01 23:27:32 25 4
gpt4 key购买 nike

假设我有游戏中的场景列表和玩家列表。每个玩家都会玩游戏中场景列表中的一些场景。我不想在播放器中拥有场景的副本,我想要像指向游戏对象中的列表的指针之类的东西,这样如果编辑了任何场景,它也会在播放器列表中进行编辑。

Game
Scenarios : list

Player
Scenarios : list -> each scenario here is a reference to scenario in Game

现在支持指针的语言会很简单,但 Java 应该是按值传递的。同时,我知道有一些黑客使用表内传递值等。是否可以这样做?

最佳答案

你尝试了什么?如果您尝试将引用放入单独的列表中,您就会知道它们是相同的引用。术语“按值传递”在这里很棘手,因为您将在方法中获得对同一对象的引用,例如,但 java 会传递引用的副本。所以基本上java传递引用值

如果您在所有列表中添加相同的引用,则对原始列表的更改将反射(reflect)在其中。

SomeObject o = new SomeObject();

list0.add(o);
list1.add(o);
list2.add(o);

o.setSomeValue(true);

// all lists will "see" the changes

list0.get(0).equals(o); // assuming list0 only contains o -> this is true

根据经验:如果您不搞乱(交换、分配等)引用,并且仅调用引用指向的对象上的方法,那就没问题。

关于java - 如何在java中创建具有公共(public)元素的多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19768098/

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