不,这不是 Java 错误。
无法说出究竟是什么导致了这种情况,但它不可能是 Java 错误。
如果您更好地解释上下文并向我们展示该setUserValue
方法的代码,我们可能会提出合理的理论。(SSCCE是理想的,但我强烈怀疑您将无法编写一个可靠地证明问题的代码......)
好的,鉴于此:
public static String setUserValue(String key, String value) {
String oldValue = getUserProperties().getProperty(key);
getUserProperties().setProperty(key, value);
return oldValue;
}
...然后假设“属性”对象是 的实例Properties
,最可能的解释是:
- 有些东西导致
getUserProperties()
在第一次和第二次调用中返回不同的对象,
- 其他东西是在第一次和第二次调用之间修改 Properties 对象,
- Properties 对象以与您期望的不同的“ABC”值开始,或者
- 其他东西正在将属性更改回其原始值;例如,通过从源文件重新加载属性。
或者也许有一个你没有告诉我们的例外......或者已经被压扁了。或者,也许您以错误的方式比较字符串(使用==
),这让您/您的程序感到困惑。
或者,也许你在构建和/或部署东西的方式上遇到了问题。