[英]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
直接(即ba = ...
)。
對B b
的引用是最終的,不能更改。 當您嘗試更改數據字段ba
的值時,它將允許您這樣做,因為它不會更改該引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.