gpt4 book ai didi

java - 更改两个java项目之间的公共(public)变量值在运行时没有反射(reflect)

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

我在 Eclipse 工作区中有 3 个相关的 Java 项目。我在第三个项目中有一个类 ClassCommon,可以从项目 1 和项目 2 访问,因为我在其中导入了必要的包。我正在本地计算机的同一 jvm 上运行项目 1 和 2。

我的问题是这样的。我在项目 1 项目 2 之间有一些公共(public)变量和方法,写在第三个项目的“ClassCommon”类中。公共(public)变量被声明为公共(public)静态变量。但是当我在运行时访问公共(public)变量并在project1进程中设置它们的值时,project2进程仍然只有第一个初始化值。我对一个项目流程中的公共(public)变量所做的更改不会反射(reflect)在其他项目的流程中。我仅以 ClassCommon.variable_name 的形式访问两个项目中的变量。这两个项目如何拥有公共(public)静态变量的不同副本?当我通过单步调试时,project1和project2进程都使用相同的类方法,但变量有自己的值,尽管它们是公共(public)静态的。有人可以澄清这个问题吗?

最佳答案

您要解决的问题是,您正在实现客户端和服务器。最常见的是,客户端和服务器运行在不同的物理机器上,因此运行在不同的 Java VM 中。

因此,尽管它们访问相同的类及其静态字段,但它们都有自己的运行时实例,因为它们在不同的虚拟机中运行。如果您尝试从客户端和服务器项目修改相同的值,则必须通过典型的客户端/服务器通信将这些更改分别传播到其他客户端/服务器。否则,客户端和服务器都将为您的静态字段保留自己的值,这些值可能会随着时间的推移而变得不同。

关于java - 更改两个java项目之间的公共(public)变量值在运行时没有反射(reflect),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24970536/

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