空白的最终变量用于创建不可变对象
Blank final variables are used to create immutable objects
我知道空白变量用于在 java 中创建不可变对象,即其成员无法更改的对象
下面几行代码如何运行没有问题
import java.util.*;
class B
{
int a;
}
public class BlankFinal
{
public static void main(String args[])
{
final B b;
b=new B();
b.a=1;
System.out.println(b.a);
b.a=23; // b object's a member is changed even though b is
// blank final
System.out.println(b.a);
}
}
b
是 final 的事实只会阻止您将新值分配给 b
(在其初始初始化之后)。它不会阻止您调用 B
的方法来改变 b
引用的对象的状态,或者直接改变 b
引用的对象的实例变量(即 b.a = ...
).
对 B b
的引用是最终的,无法更改。当您尝试更改数据字段的值 b.a
时,它会允许您这样做,因为它不会更改该引用。
我知道空白变量用于在 java 中创建不可变对象,即其成员无法更改的对象 下面几行代码如何运行没有问题
import java.util.*;
class B
{
int a;
}
public class BlankFinal
{
public static void main(String args[])
{
final B b;
b=new B();
b.a=1;
System.out.println(b.a);
b.a=23; // b object's a member is changed even though b is
// blank final
System.out.println(b.a);
}
}
b
是 final 的事实只会阻止您将新值分配给 b
(在其初始初始化之后)。它不会阻止您调用 B
的方法来改变 b
引用的对象的状态,或者直接改变 b
引用的对象的实例变量(即 b.a = ...
).
对 B b
的引用是最终的,无法更改。当您尝试更改数据字段的值 b.a
时,它会允许您这样做,因为它不会更改该引用。