我在Java中遇到以下问题:
这样可以正常工作:
xyz.setUserValue("ABC", "file_xyz.abc");
但这不是:
String test = "file_" + VariableXYZ.toLowerCase() + ".abc";
System.out.println(test);
xyz.setUserValue("ABC", test);
- > println的输出(测试)==> file_xyz.abc
奇怪的是它之前有效,但从一个时刻到另一个时刻它没有。
Java bug? - 任何想法?
事先感谢!!
答案 0 :(得分: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()
在第一次和第二次调用中返回另一个对象或许有一个例外,你没有告诉我们......或者已经被压扁了。或许你正在以错误的方式比较字符串(使用==
),这会使你/你的程序感到困惑。
或许你对构建和/或部署内容的方式有疑问。