springboot 如何让加了 final修饰的字段赋值
时间: 2024-09-24 22:02:30 浏览: 72
java中final修饰符实例分析
Spring Boot 中默认遵循 Java 的访问规则,包括 final 字段的赋值。final 修饰的字段在声明时就必须给它一个初始值,之后无法再更改这个值。如果你需要在初始化过程中设置 final 变量,通常是在构造函数或静态初始化块(static initializer block)中完成。
例如:
```java
public class MyClass {
private final String myField; // 初始化时必须赋予一个值
public MyClass(String myField) {
this.myField = myField;
}
// 或者在 static 区域进行初始化
static {
String myField = "default value"; // 静态初始化块,只在类加载时运行一次
MyClass.staticFinalField = myField;
}
// 注意,直接在类定义里赋值是不允许的,因为final字段不允许有字段初始化表达式(如 final int x = ...)
}
```
如果你试图在代码其他位置改变 final 字段的值,编译器会报错。在 Spring Boot 应用程序中,除非你明确设计成配置类(@ConfigurationProperties 或 @Value 注解),否则一般不会尝试对 final 属性进行动态赋值。
阅读全文