我在eclipse工作区中有3个相关的java项目。我有一个类在第三个项目中说ClassCommon,可以从项目1和项目2访问,因为我在其中导入了必要的包。我在本地机器上的同一个jvm上运行项目1和2。
我的问题是这个。我在第三个项目的'ClassCommon'类中编写的项目1项目2之间有一些常见的变量和方法。公共变量声明为公共静态变量。但是当我访问公共变量并在运行时在project1进程中设置它们时,project2进程仍然只有第一个初始值。我在一个项目的过程中对公共变量所做的更改没有反映在其他项目的过程中。我只在ClassCommon.variable_name中访问两个项目中的变量。这两个项目如何具有不同的常见静态变量副本?当我通过步进调试时,project1和project2进程都使用相同的类方法,但变量具有自己的值,尽管它们是公共静态的。有人可以澄清这个问题吗?
答案 0 :(得分:1)
您要解决的问题是,您正在实现客户端和服务器。最常见的是,客户端和服务器在不同的物理机器上运行,因此在不同的Java VM中运行。
因此,虽然它们访问同一个类及其静态字段,但它们都有自己的运行时实例,因为它们在不同的VM中运行。如果您尝试从客户端和服务器项目修改相同的值,则必须通过典型的客户端/服务器通信将这些更改分别传播到其他客户端/服务器。另外,客户端和服务器都将保留自己的静态字段值,这些值可能会随着时间的推移而变化。
答案 1 :(得分:0)
在所有变量的公共类中生成getter和setter,然后通过这些方法获取并设置它们。
希望它会有所帮助