Java 字符串变量不工作-但硬编码不工作。。。(爪哇)
我在Java中遇到以下问题: 这是应该的:Java 字符串变量不工作-但硬编码不工作。。。(爪哇),java,string,hardcoded,Java,String,Hardcoded,我在Java中遇到以下问题: 这是应该的: xyz.setUserValue(“ABC”,“file_xyz.ABC”) 但事实并非如此: -->println(test)的输出==>文件\u xyz.abc 奇怪的是,它以前工作过,但有时不工作。 Java bug?-有什么想法吗 先谢谢你 不,这不是Java bug 我们不可能说出到底是什么导致了这种情况,但不可能是Java bug 如果您更好地解释了上下文,并向我们展示了setUserValue方法的代码,我们可能会提出合理的理论
xyz.setUserValue(“ABC”,“file_xyz.ABC”)代码>
但事实并非如此:
-->println(test)的输出==>文件\u xyz.abc
奇怪的是,它以前工作过,但有时不工作。
Java bug?-有什么想法吗
先谢谢你 不,这不是Java bug
我们不可能说出到底是什么导致了这种情况,但不可能是Java bug
如果您更好地解释了上下文,并向我们展示了setUserValue
方法的代码,我们可能会提出合理的理论。(A将是理想的,但我强烈怀疑您无法编写一个可靠地证明问题的代码……)
好的,考虑到这一点:
public static String setUserValue(String key, String value) {
String oldValue = getUserProperties().getProperty(key);
getUserProperties().setProperty(key, value);
return oldValue;
}
。。。然后假设“properties”对象是属性的实例,最可能的解释是:
- 某些原因导致
getUserProperties()
在第一次和第二次调用中返回不同的对象
- 在第一次调用和第二次调用之间修改Properties对象
- Properties对象开始时的“ABC”值与预期值不同,或者
- 其他一些东西正在将财产变回其原始价值;e、 g.从源文件重新加载属性
或者可能有一个例外,你没有告诉我们。。。或者已经压扁了。或者,您可能以错误的方式比较字符串(使用==
),这会让您/您的程序感到困惑
或者,您可能在构建和/或部署东西的方式上有问题。是否可以包含您看到的错误消息?是否可以发布完整的代码来重新解释问题。可能只有main
方法。这怎么不起作用?您看到了什么错误或不当行为?以及xyz.setUserValue()
code。一个猜测:您是否在某处测试xyz.getUserValue()=“file_xyz.abc”?这种比较在第一种情况下“有效”,而在第二种情况下失败(字符串内容比较应使用equals(..)方法)。问题是我不比较任何东西FrameworkSettings.setUserValue(“OWIL.IOW_文件”、“settings/iowfiles/sauxz3_”+Umgebung.toLowerCase()+“.IOW”);-->不工作,但我使用了一个日志文件,并将“Umgebung”的内容写入其中-->内容正常,但属性不变OK。如果你不相信这些解释,我认为应该由你来提供SSCEE。“正如我提到的,它以前是有效的”。。。在我看来,这只能意味着你改变了一些事情!乔治:结果不一致的另一种可能是多线程程序中的错误。你是在一条线上写作,还是在另一条线上阅读?
public static String setUserValue(String key, String value) {
String oldValue = getUserProperties().getProperty(key);
getUserProperties().setProperty(key, value);
return oldValue;
}