静态代码赋值final变量报错
时间: 2023-05-27 20:06:13 浏览: 204
final变量.
在Java中,final变量可以在声明时直接赋值,或在构造函数中赋值,但不能在静态代码块中赋值。
例如:
```java
public class MyClass {
// 直接在声明时赋值
private final int value1 = 10;
// 在构造函数中赋值
private final int value2;
public MyClass() {
value2 = 20;
}
// 错误的方式,在静态代码块中赋值
private static final int value3;
static {
value3 = 30; // 编译错误
}
}
```
如果需要在静态代码块中赋值final变量,可以使用静态初始化块:
```java
public class MyClass {
private static final int value;
static {
value = 10;
}
}
```
阅读全文