不过,从Java 8开始,局部变量可以被声明为`final`,表示一旦给它们赋值之后就不能再改变它们的值。此外,从Java 10开始,局部变量还可以使用`var`来实现类型推断,在不显式声明具体类型的情况下由编译器推断变量的类型。
示例
- 使用`final`:
```java
void myMethod() {
final int i = 42; // i 现在是常量,不能被重新赋值
// i = 43; // 这会导致编译错误
}
```
- 使用`var`进行类型推断 (Java 10及以上):
```java
void anotherMethod() {
var j = 42; // j 被自动推断为int类型
// j = "hello"; // 这会导臀编译错误,因为j已经被推断为int类型
}
```
总结
Java局部变量可以使用的修饰符非常有限,主要是`final`以及Java 10引入的`var`(用于类型推断,并不算是修饰符)。其他常见的修饰符,如访问控制修饰符(`public`、`protected`、`private`)和`static`等,都不能用于局部变量。