gpt4 book ai didi

java - 在类之间共享 Java 变量的最佳方式

转载 作者:行者123 更新时间:2023-12-01 14:12:21 24 4
gpt4 key购买 nike

我在 Java 中遇到了一个奇怪的问题。我可以解决它,但该解决方案似乎效率低下。

我有一个类,简化为

 class Zot
{
double edges[];
}

问题是,在许多情况下,我希望实例 A 和实例 B 共享一个边缘实例。换句话说,实例A可能分配edge[2]并希望实例B共享edge[2]。这很简单,我只需将实例 B 设置为指向实例的 A 边缘 [2]。但我怎样才能有效地做到这一点呢?如果我在实例A中分配edges[],那么我可以简单地将B的实例分配给A。但通常我只想在A中分配一条边(例如edge[2]),然后在B中分配它。但是在 Java 中,(据我所知)不能分配数组的单个成员(而在 C++ 中可以)。理想情况下,我只想分配有用的成员并分配它。当然,我可以分配所有 4 个成员,分配我需要的成员,然后将不需要的成员设置为 null 并让 GC 将其全部清理掉,但如果有数百或数千个实例,则显得很笨拙。

建议?

最佳答案

您可以在两个类外部声明和分配双边[],然后将此数组作为构造函数中的参数传递给想要共享它的两个实例。

在 Java 中,数组也是一个对象。当您创建像 double Edges[] = new double[2]; 这样的实例时,edges 将作为指针而不是副本传递。

这意味着如果您在 A 类中的数组中进行更改,那么 B 类也会看到此更改。

关于java - 在类之间共享 Java 变量的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18412981/

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