gpt4 book ai didi

java - 无法从属性文件返回值 - Java

转载 作者:行者123 更新时间:2023-12-01 09:41:27 24 4
gpt4 key购买 nike

我目前正在尝试在我的程序中实现配置。我已经成功创建并读取了该文件,但在使用“双方法”返回值时仍然遇到问题。

创建文件:

public void setDefaultConfig()
{
Properties prop = new Properties();
OutputStream output = null;

try {

output = new FileOutputStream("config.properties");

prop.setProperty("window_close_speed", "5000");

prop.store(output, null);

} catch (IOException io) {
io.printStackTrace();
} finally {
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}
}

读取并尝试返回速度:

public double retSpeed()
{
Properties prop = new Properties();
InputStream input = null;

try {

input = new FileInputStream("config.properties");

prop.load(input);

double windowSpeed = Double.parseDouble(prop.getProperty("window_close_speed"));

} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();

}
}
}
}

出于某种原因,我无法“返回 windowSpeed;”。 Eclipse 要么提示“windowSpeed 无法解析为变量”,要么“此方法必须返回 double 类型的结果”。 windowSpeed 的值为 5000.00,当使用 System.out.println(); 返回它时似乎完全没问题

有什么想法吗?

感谢您的阅读

最佳答案

捕获异常后,继续执行到函数末尾,仍然必须返回一个值;例如:

double foo() {
try {
return Double.parseDouble("abcd");
} catch (Exception ex) {
ex.printStackTrace();
}
// If an exception was thrown, execution reaches here
// and we must still return a value. If you don't want
// this to happen because there is no sensible value you
// could possibly return, don't catch the exception here
return 0;
}

就您而言,由于您只捕获 IOException,而 Double.parseDouble 不会抛出该异常,因此您只需移动 parseDouble > 和 return 位于 try ... catch 下面,一切都会变得很顺利。但请注意,如果输入错误,这仍然会抛出未经检查的异常 NumberFormatException (尽管它会让编译器满意)。

此外,您还注意到,如果包含 return,则 return windowSpeed; 会导致有关未解析为变量的编译错误。

您没有显示您的 return 语句,但我只能推断您的 return 语句位于函数的底部。既然如此,windowSpeed 并不存在于同一范围内,因为它仅在 try...catch内部声明,因此编译错误。您可以将声明移至 try...catch 外部(即提升其作用域),或者将 return 语句移至 try...catch 内部并添加根据我的示例,附加返回

关于java - 无法从属性文件返回值 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38416787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com