簡體   English   中英

空白的最終變量用於創建不可變對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM