根据我对 java 的了解,我认为这是不可能的,但我想向比我更有知识的人提出这个问题。
如果我有一个静态变量,
public static String NAME = "james";
是否有任何方法,通过反射或其他方式,为所述变量创建一个监听器,以便如果其他人调用:
ClassName.NAME
可以在得到结果之前对其进行修改,这样我就可以更改 NAME 的值,使其等于“simon”?
需要明确的是,这个代码库不是我自己的,我无法更改变量以改为使用 getter 和 setter。我知道这会让事情变得更简单,但不幸的是,这不是一个选择。
最佳答案
不,你不能。这就是为什么您不应该使用 public
变量的原因之一。始终使用私有(private)
或 protected
变量,并通过诸如static public String getName()
之类的getter方法访问它们。这样你就可以将任何逻辑放入你想要的 getter 中。
关于java - 访问时修改静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24657620/