gpt4 book ai didi

java - 从 .properties 中检索整数时遇到问题

转载 作者:行者123 更新时间:2023-11-29 08:32:07 25 4
gpt4 key购买 nike

当我尝试使用我在 application.properties 中设置的整数时,我不断收到 java.lang.NumberFormatException: null 错误。

这是我的application.properties

my.prop.for.func=25

这就是我从 .properties 文件中检索值并将其转换为整数以便稍后在函数中使用的方式。

@Value("${my.prop.for.func}")
private String myPropForFuncStr;
private int myPropForFunc = Integer.parseInt(myPropForFuncStr);

我尝试了其他将属性转换为整数的方法,例如@Value("#{new int ('${my.prop.for.func}')}") 但他们给出了其他错误,这似乎是最简单的方法。

我可能收到 NumberFormatException: Null 错误,因为 myPropForFuncStr 为空。我总是像这样从 .properties 文件中检索值,那么为什么它现在搞砸了?如果这不是问题,还有什么会导致 NumberFormatException: Null 错误?

最佳答案

首先,Spring 框架已经为您处理了自动装箱。这意味着您可以直接将注释添加到 int 变量。

@Value("${my.prop.for.func}")
private Integer myPropForFunc; // Note that this needs to be an object and not a primitive data type.

现在,谈到您的问题,您可能想检查您的类(class)是否已使用 @PropertySource 进行注释注解。如果您使用 Spring Boot 来初始化您的应用程序,那么它应该会自动读取您的 application.properties文件并将这些属性适本地注入(inject)到字段中。但如果你不是,那么你需要用 @PropertySource 注释你的类。注解。即使您使用的是 Spring boot,您的设置也不会因为 @Value 而无法正常工作。将在 bean 成功初始化后进行评估,但您正在初始化 myPropForFunc 的值在现场本身。

这是一个显示注释用法的示例。 https://www.mkyong.com/spring/spring-propertysources-example/

关于java - 从 .properties 中检索整数时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47061550/

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