2

我在Java中有以下问题:

这可以正常工作:

xyz.setUserValue("ABC", "file_xyz.abc");

但这不会:

String test = "file_" + VariableXYZ.toLowerCase() + ".abc";
System.out.println(test);
xyz.setUserValue("ABC", test);


--> println(test) 的输出 ==>file_xyz.abc
奇怪的是它以前工作过,但从一个时刻到另一个时刻它都没有。爪哇错误?- 有任何想法吗?

先谢谢了!!

4

1 回答 1

3

不,这不是 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”值开始,或者
  • 其他东西正在将属性更改回其原始值;例如,通过从源文件重新加载属性。

或者也许有一个你没有告诉我们的例外......或者已经被压扁了。或者,也许您以错误的方式比较字符串(使用==),这让您/您的程序感到困惑。

或者,也许你在构建和/或部署东西的方式上遇到了问题。

于 2013-02-14T11:21:50.723 回答